我有一個類似的問題,搜查但找不到任何東西。事實上,我正在錯誤地思考這種關係。
這個應用程序安排了一堆Items
在一個Board
按順序重複。
EX。做A,做B,做C,做A再做,做D
我創建了一個很好的老式連接表,其中Item
,Board
和董事會職位BoardItemPositon
。
從Board
實體中,您可以隱藏所有連接表的混亂狀態並獲取並設置數組。
@implementation Board
@dynamic boardItems;
- (void)setItems:(NSArray *)items{
//the ordered set of links
NSMutableOrderedSet *boardItemSet = [NSMutableOrderedSet new];
int i = 1;
for (Item *item in items) {
BoardItemPosition *boardItemPosition = (BoardItemPosition *)[NSEntityDescription insertNewObjectForEntityForName:@"BoardItemPosition"
inManagedObjectContext:[self managedObjectContext]];
NSNumber *num = [NSNumber numberWithInt:i++];
[boardItemPosition setItemPosition:num];
[boardItemPosition setItem:item];
[boardItemSet addObject:boardItemPosition];
}
//delete the old links
for (BoardItemPosition *boardItemPosition in [self boardItems]) {
[self.managedObjectContext deleteObject:[self.managedObjectContext objectWithID:boardItemPosition.objectID]];
}
//set the new links
[self setBoardItems:boardItemSet];
}
- (NSArray *)items{
//pull out item and add to array
NSMutableArray *itemArray = [NSMutableArray new];
for (BoardItemPosition *boardItemPosition in [self boardItems]) {
[itemArray addObject:[boardItemPosition item]];
}
return itemArray;
}
TechZen是正確的。 100%同意。 所以問題是:你試圖解決什麼問題,這讓你認爲你需要存儲對象A和B1之間的關係兩次?如果你能解釋這一點,我們可能會建議你如何以另一種方式實現你的目標。 – 2011-10-07 07:07:01