无法从核心数据中获取已保存的数据

时间:2014-04-17 13:30:42

标签: ios core-data

当我从核心数据中搜索保存的数据时,它会在检索时为我提供旧的已保存数据。需要帮助才能找到我的错误

- (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);
}

1 个答案:

答案 0 :(得分:0)

您的提取请求没有谓词。这将导致它获取数据存储区中的所有VitaminData个实体。

给它一个谓词,并且(可能)也有一些排序描述符。然后迭代结果。请注意,您还应该检查objects之后nil不是-executeFetchRequest:。如果objectsnil,则您的获取请求中会出现错误,您应该查看error的内容。