2012-06-01 5 views
10

ARCモードのCoreDataでエンティティのモデルオブジェクトを作成すると、代わりにまたは強力な保持が生成されます。それでは、ARCモードでの作業とコンパイルも保持していますか? ARCモードでは、リリース、オートリリース、キーワードを保持することはできません。ARCのCoreDataモデルオブジェクトは、保持を使用します

+0

これは驚くべきことですが、応答はありませんか? – theiOSguy

答えて

4

このように@propertyという宣言が生成されたことを意味しますか?

@property (nonatomic, retain) MyObject *object; 

retain property属性は、ARCの下strongを意味します。

4.1.1. Property declarations

+1

それは素晴らしいですが、本当に質問に答えていない、私はこの男がARCを使用してプロジェクトを作成し、コアデータをミックスに追加すると、NSManagedObjectsは、強力ではなく、保持を使用するプロパティで生成されています。これはプロジェクトのARC以外のセクションであると特に明記されていない限り、ARCプロジェクトでは合法ではありませんが、これは奇妙な出来事です。強力な非保持を使用することが期待されるべきです、または少なくともコンパイラはARCルールと一致しないと不平を言うでしょう...その他の考え – Daniel

+10

ARCは 'retain'キーワードの使用を禁止しません。 'retain'セレクタの使用を禁止します。キーワードとセレクタはまったく異なります。私がリンクした文書の§7.1.1を参照してください。 –

+0

追加情報をありがとう – Daniel

4

この答えをチェックしてみて下さい:それのhttps://stackoverflow.com/a/10036821/662605

要旨は、あなたがあなたの特性を@synthesize場合は、ボンネットの下に生成されたコードがretainタイプ(retainassignに依存しているということです、 copy)。

生成した管理対象オブジェクトのサブクラスは、それは混乱だが、retainキーワードは、したがって、ARCは文句はないが、それは思わ使用されていない、@dynamicは、すべてこのようなものがそう実際に、あなたのための魔法のように起こっているのではない@synthesize使用します..私はそれが本当だと確信しています。

私は@synthesizeを使用すると、まだエラーを取得していない実装を交換しようとしましたが、私たちはその他の洞察がいいだろうリンク

にその答えで何か上にあることができると思いますが。

関連する問題