0

リストが定義されています:

@property (nonatomic, strong) NSArray *list;

@synthesize list = _list;

違いは何ですか:

list = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

self.list = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

1 つ目は Core Data のすべてのレコードを返しますが、2 つ目は何も返しません。

4

1 に答える 1

1

Encapsulating Dataに関する App doc を読む必要があると思います。

_list特に、最初のコード スニペットでは、アクセサー メソッドを通じて呼び出されるインスタンス変数をラップするように言っています。

一般に OOP では、セッターおよびゲッターとも呼ばれます。それらの利点についての良い議論は、ゲッターとセッターを使用する理由で見つけることができます。.

だから、他の人のコメントは正しいです。list変数はどこから来ますか?

理解しておく必要がある重要なことは、ドット構文はメソッド呼び出しにアクセスするための簡潔な方法だということです。たとえば、次のようになります。

NSString *nickname = person.nickname;
person.nickname = @"This is my nickname";

に等しい

NSString *nickname = [person nickname];
[person setNickname:@"This is my nickname"];

メモ。XCode 4.4 以降、新しい Apple LLVM コンパイラ 4.0 では、@synthesizeディレクティブをスキップできます。内部では、コンパイラは_接尾辞付きのインスタンス変数を生成します。Automatic Property Synthesis With Xcode 4.4でのさらなる参照。

于 2013-10-05T14:52:09.603 に答える