iphone - objective - swift nsarray




如何獲得核心數據中的關係項目屬性? (2)

假設你有一個名為Workshop的核心數據對象。 它與Student對像有多對多的關係。

我將如何在研討會中創建一個NSArray的學生?


您通常不需要創建一個多對多關係的數組,因為它們自動進入NSSet。 這比數組提供了更好的靈活性。

但是,如果您需要按特定順序排序的學生,則可以使用排序描述符來返回排序後的數組。 假設你已經有了WorkShop實例,並且你想要一個按姓氏排序的學生數組,你可以使用下面的代碼:

WorkShop *aWorkShop=//... fetch the appropiate WorkShop instances
NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:NO];
NSArray *sortedStudents=[aWorkShop.students sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];

這些關係通常在NSManagedObject子類中聲明為NSSet ,如下所示:

@property (retain) NSSet* students;

還有一些特殊的訪問方法:

- (void)addStudentsObject:(NSManagedObject *)value;
- (void)removeStudentsObject:(NSManagedObject *)value;
- (void)addStudents:(NSSet *)value;
- (void)removeStudents:(NSSet *)value;

NSSets類似於NSArrays,但是它們沒有排序,因為核心數據並不能保證管理對象的特殊排序順序。





nsarray