0

次のコードは、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リリースノートへの移行」、特に変数修飾子の部分を読みましたが、中間体をマークする方法がわからないため、中間体が消費されるまで存続します。

4

1 に答える 1

0

プロパティはまたはvcObjとして定義されていますweakassign? strong渡された値を保持するためです。

于 2013-10-29T20:27:11.017 に答える