Aha*_*tra 4 iphone xcode core-data objective-c ios
我有一个名为marbles的整数,并尝试使用以下代码将其保存到数组中:
[records setValue:marbles forKey:@"marbles"];
Run Code Online (Sandbox Code Playgroud)
使用此代码,我收到警告:
警告:语义问题:不兼容的整数到指针转换将'int'发送到'id'类型的参数
那么,我如何设置NSInteger的值.
下一个问题,如何将数组重新上传到核心数据?我获取数组,进行更改,以及如何将这些更改应用回Core Data?
谢谢
isa*_*aac 14
使用整数初始化NSNumber(这是CoreData期望的):
NSNumber *marbleNumber = [NSNumber numberWithInt:marbles];
[records setObject:marbleNumber forKey@"marbles"];
Run Code Online (Sandbox Code Playgroud)
要么:
[records setMarbles:[NSNumber numberWithInt:marbles]];
Run Code Online (Sandbox Code Playgroud)
要保留更改,请保存上下文:
NSError *error;
[myManagedObjectContext save:&error];
//handle your error
Run Code Online (Sandbox Code Playgroud)
NSArrays只接受对象,因此第一步是使用此方法将NSInteger转换为NSNumber:
+ (NSNumber *)numberWithInt:(int)value
Run Code Online (Sandbox Code Playgroud)
所以:
NSNumber *myNumber = [NSNumber numberWithInt:marbles];
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
[records setValue:myNumber forKey:@"marbles"];
Run Code Online (Sandbox Code Playgroud)
基本上,一旦获取数据,就会获得一个managedObjectContext,将其视为绘图板,并且您对此对象所做的任何更改(包括添加或删除新对象)可能会使用以下内容再次保存到CoreData:
NSError *error;
if (![context save:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
Run Code Online (Sandbox Code Playgroud)
上下文是您使用NSFetchedResultsController获得的上下文.你可以这样得到:
NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];
Run Code Online (Sandbox Code Playgroud)
我建议您查看核心数据编程指南
| 归档时间: |
|
| 查看次数: |
12096 次 |
| 最近记录: |