2013-03-10 19 views
9

Tôi vừa tạo lớp iOS với các thuộc tính sau:iOS - "add" phương pháp xuất hiện cho tính autosynthesized trong codeSense

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

tôi không đưa vào bất kỳ @synthesize hoặc ivars rõ ràng đối với những tài sản. Sau đó tôi đã đi vào tệp triển khai và bắt đầu tạo phương thức như sau:

-(void) add 

Tôi để con trỏ ở cuối từ "thêm". Các tên phương pháp sau đây xuất hiện theo nghĩa mã:

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

Các phương pháp này là gì? Có tài liệu nào cho họ không?

+3

Đây là lần đầu tiên, và có lẽ độc đáo và lần cuối cùng trong cuộc đời của tôi, tôi ** thêm ** thẻ 'xcode' cho một câu hỏi. –

Trả lời

6

Đó là phương pháp accessor rằng một lớp có thể thực hiện để hỗ trợ Key-Value Mã hóa cho có thể thay đổi các mối quan hệ với nhiều người, thấy Mutable Unordered Accessors trong "Key-Value Mã hóa Lập trình Hướng dẫn":

Để có khiếu nại mã hóa khóa-giá trị cho mối quan hệ nhiều-bit có thể thay đổi không theo thứ tự liên quan đến bạn phải thực hiện các phương pháp sau:

-add<Key>Object: hoặc -add<Key>:. Phải thực hiện ít nhất một trong các phương thức này. Chúng tương tự như phương pháp NSMutableSet addObject:.

Cùng "kỳ lạ" autocompletion xảy ra cho các phương pháp accessor Key-Value mã hóa khác, ví dụ:

- (void)remove... 
- (void)intersect... 
- (NSUInteger)countOf... 
+0

OMG! Đôi khi sự phổ biến của các từ như "thêm" khiến tôi quên và sử dụng các phương thức '-add '. Sau đó, KVO chất liệu phá vỡ khi bạn không vượt qua lớp đối tượng chính xác với nó, với các lỗi lạ như '- [MYObject intersectsSet:]: unrecognized selector gửi đến instance 0xc45dde0'. Thông tin này rất hữu ích. :) – Hlung

Các vấn đề liên quan