我有一个类似的问题,搜查但找不到任何东西。事实上,我正在错误地思考这种关系。
这个应用程序安排了一堆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