CoreData - 我应该传递现有的NSNumber来设置实体的属性,还是创建一个新实体?

时间:2010-05-21 11:50:00

标签: objective-c xcode core-data

我从CoreData开始,我有一个问题: 我有一个包含NSNumber对象的数组。我需要为每个对象创建一个实体Event,只有一个属性eventNumber,它也应该是一个NSNumber。

我可以像这样传递数组的对象:

for (int i = 0, i<[myArray count], i++){
   Event *newEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedContext:managedContext];
   [newEvent setEventNumber:[myArray objectAtIndex:i]]
}
[myArray release]

或是否有必要创建一个新的NSNumber:

for (int i = 0, i<[myArray count], i++){
   Event *newEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedContext:managedContext];
   [newEvent setEventNumber:[NSNumber numberWithInt:[[myArray objectAtIndex:i] intValue]]
}
[myArray release]

感谢您的帮助。

利奥

1 个答案:

答案 0 :(得分:1)

没有必要为此目的创建新的NSNumber;你的第一个选择是正确的。

但是,您可以使用fast enumeration

简化循环
for (NSNumber *num in myArray) {
   Event *newEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedContext:managedContext];
   [newEvent setEventNumber:num]
}