当我从核心数据中搜索保存的数据时,它会在检索时为我提供旧的已保存数据。需要帮助才能找到我的错误
- (void)retrieveDataFromCoreData
{
NSManagedObjectContext *context = [self managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"VitaminData" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSError *error = nil;
NSArray *objects = [context executeFetchRequest:request
error:&error];
NSString *matchFound = nil;
matches = [[NSMutableArray alloc]init];
if ([objects count] == 0) {
//matchFound = @"No matches";
} else {
matches = objects[0];
matchFound = [matches valueForKey:@"userdetails"];
}
NSLog("retrieved data : %@",matchFound);
}
答案 0 :(得分:0)
您的提取请求没有谓词。这将导致它获取数据存储区中的所有VitaminData
个实体。
给它一个谓词,并且(可能)也有一些排序描述符。然后迭代结果。请注意,您还应该检查objects
之后nil
不是-executeFetchRequest:
。如果objects
为nil
,则您的获取请求中会出现错误,您应该查看error
的内容。