Bạn nên giữ nó như một NSSet
và thực hiện một trong các cách sau:
- Sử dụng key value coding
- Thêm lõi data generated accessors
Đối với mã hóa giá trị quan trọng, bạn sẽ truy cập vào bộ sưu tập của bạn như vậy:
NSMutableSet *somethings = [object mutableSetValueForKey:@"somethings"];
[somethings addObject:newObject];
Vì dữ liệu cốt lõi tạo accessors, bạn muốn thêm dòng sau vào tiêu đề của bạn:
@interface MyManagedObject (CoreDataGenerated)
- (void)addSomethingsObject:(MySomething *)object;
- (void)removeSomethingsObject:(MySomething *)object;
- (void)addSomethings:(NSSet *)somethings;
- (void)removeSomethings:(NSSet *)somethings;
@end
Bạn không cần phải thực hiện các phương pháp này (Core Dữ liệu sẽ chăm sóc nó cho bạn), và bạn có thể gọi cho họ một cách dễ dàng. Đây là cách ưa thích của tôi trong việc xử lý các bộ sưu tập vì bạn có thể kiểm tra kiểu tốt hơn từ trình biên dịch.
Lý do bạn không nên thay đổi nó thành NSMutableSet
là do có nhiều khả năng bạn sẽ gây ra sự cố và/hoặc thay đổi của bạn sẽ không được lưu vào kho dữ liệu cốt lõi của bạn.
Bạn cũng có thể muốn xem xét mogenerator để giúp bạn tạo ra tất cả các lớp học Cocoa của bạn.
nó sẽ gây ra bất kỳ vấn đề gì nếu tôi thêm đối tượng đã có vào mối quan hệ – Johnykutty
@Johnykutty bộ đảm bảo rằng không có bản sao. Điều này sẽ không có hiệu lực. – wbyoung