9

次のプロパティを使用してiOSクラスを作成しました。

@property (nonatomic, strong) NSString* foo;
@property (nonatomic, strong) NSObject* bar;
@property (nonatomic) CGRect fubar;

これらのプロパティに@synthesizeまたは明示的なivarを入れませんでした。次に、実装ファイルに移動し、次のようにメソッドの作成を開始しました。

-(void) add

「追加」という単語の最後にカーソルを置きました。次に、次のメソッド名がコードの意味でポップアップ表示されます。

addBar: (NSSet*) objects
addBarObject: (objectType *) object
addFoo: (NSSet*) objects
addFooObject: (objectType *) object
addFubar: (NSSet*) objects
addFubarObject: (objectType *) object

これらの方法は何ですか?それらのドキュメントはありますか?

4

1 に答える 1

6

これは、変更可能な対多関係のキー値コーディングをサポートするためにクラスが実装できるアクセサー メソッドです。「キー値コーディング プログラミング ガイド」の「変更可能な順序付けられていないアクセサー」を参照してください。

変更可能な順序付けられていない対多の関係のキー値コーディングの苦情になるには、次のメソッドを実装する必要があります。

-add<Key>Object:または-add<Key>:。これらのメソッドの少なくとも 1 つを実装する必要があります。これらはNSMutableSetメソッド に似ていaddObject:ます。

他の Key-Value コーディング アクセサー メソッドでも、同じ「奇妙な」オートコンプリートが発生します。次に例を示します。

- (void)remove...
- (void)intersect...
- (NSUInteger)countOf...
于 2013-03-10T21:29:03.293 に答える