Fin*_*ist 4 iphone core-data objective-c
我正在崩溃这条消息:
'NSInvalidArgumentException',原因:'在实体中找不到密钥路径名
显然我并没有正确地查询我的实体.
//fetching Data
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Viewer" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSString *attributeName = @"dF";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like %@",attributeName];
[fetchRequest setPredicate:predicate];
NSLog(@"predicate : %@",predicate);
NSError *error;
NSArray *items = [context executeFetchRequest:fetchRequest error:&error];
NSLog(@"items : %@",items);
[fetchRequest release];
//end of fetch
Run Code Online (Sandbox Code Playgroud)
这是我的数据模型:

我想返回"dF"的值,不应该这样称呼它?:
NSString *attributeName = @"dF";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like %@",attributeName];
Run Code Online (Sandbox Code Playgroud)
如果你想从你的dF属性中获取价值,你必须获取一个数组NSManagedObjects然后[fetchedManagedObject valueForKey:@"dF"];用来获取你的价值.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Viewer" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSArray *items = [context executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
NSManagedObject *mo = [items objectAtIndex:0]; // assuming that array is not empty
id value = [mo valueForKey:@"dF"];
Run Code Online (Sandbox Code Playgroud)
谓词用于获取NSManagedObjects满足您标准的数组.例如,如果你dF是一个数字,你可以创建像" dF > 100" 这样的谓词,然后你的获取请求将返回一个NSManagedObjectsdF值> 100 的数组.但是如果你只想得到值,你就不需要任何谓词.
| 归档时间: |
|
| 查看次数: |
16751 次 |
| 最近记录: |