我从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]
感谢您的帮助。
利奥
答案 0 :(得分:1)
没有必要为此目的创建新的NSNumber
;你的第一个选择是正确的。
但是,您可以使用fast enumeration:
简化循环for (NSNumber *num in myArray) {
Event *newEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedContext:managedContext];
[newEvent setEventNumber:num]
}