次のコードは、ARC に変換するまで機能しました。行の実行後に vcObj に nil が含まれているため、現在は失敗しています。
[[self vcPhoto] setVcObj: [NSClassFromString( [[self vcPhoto] vcClassName] ) new]];
私は実験しましたが、コードをそのように変更すると、再び機能し、オブジェクト x が期待どおりに vcObj に割り当てられます。
id x = [NSClassFromString( [[self vcPhoto] vcClassName] ) new]];
[[self vcPhoto] setVcObj: x];
クラスが次から生成されたように私には思えます:
[NSClassFromString( [[self vcPhoto] vcClassName] ) new]
vcObj に割り当てる前にすぐに蒸発します。
「ARCリリースノートへの移行」、特に変数修飾子の部分を読みましたが、中間体をマークする方法がわからないため、中間体が消費されるまで存続します。