【问题标题】:Core data get specific object核心数据获取特定对象
【发布时间】:2013-04-01 23:15:31
【问题描述】:
- (NSManagedObjectContext *)anObjectByEntityForName:(NSString *)entityName withValue:(NSObject *)value forKeyPath:(NSString *)keyPath {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:self.managedObjectContext]];
[request setPredicate:[NSPredicate predicateWithFormat:@"%@ == %@", keyPath, value]];

NSError *error = nil;
NSMutableArray *mutableFetchResults = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (!mutableFetchResults) {
    [request release];
    [mutableFetchResults release];
    return nil;
}

if ([mutableFetchResults count] == 0) {
    [request release];
    [mutableFetchResults release];
    return nil;
}

id anObject = [mutableFetchResults objectAtIndex:0];
[request release];
[mutableFetchResults release];

return anObject;
}

对于键路径“isSelected”和值@YES,此代码返回nil。但如果没有谓词,则返回所有对象。在数据库中至少有 1 个符合条件的对象。 whit 有什么问题?

【问题讨论】:

    标签: ios core-data ios6.1


    【解决方案1】:

    对于键或键路径,必须使用 %K 格式:

    [request setPredicate:[NSPredicate predicateWithFormat:@"%K == %@", keyPath, value]];
    

    显示在Documentation

    【讨论】:

    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多