从核心数据中检索特定对象

时间:2013-05-19 23:03:09

标签: objective-c macos core-data

我是Core Data的新手,想知道是否有可能根据它的属性获取对象,更具体地说,是我分配给它的唯一ID。我正在尝试这样做,因为我正在与Web服务器连接,该服务器提供将更新Core Data的数据。我想搜索每个Web服务器对象,检查时间戳,如果它不同,则从核心数据中检索该对象,然后进行更新。我已经看过使用existingObjectWithId,但似乎我必须知道我正在搜索哪个对象,或者该对象的ID。我还考虑过对两个数组中的数据进行排序,然后同时检查每个数据,但不认为这是可行的。

这是我到目前为止所做的事情:

-(NSMutableArray*) updateRootBeers:(NSMutableArray*)webRootBeerList{
    NSManagedObjectContext* moc = [self managedObjectContext];
    NSFetchRequest* fetchRequest = [[NSFetchRequest alloc]initWithEntityName:@"Rootbeer"];
    coreDataRootBeerList = [[moc executeFetchRequest:fetchRequest error:nil]mutableCopy];
    //check to see if core data has data, if not, call function to populate the list
    if (coreDataRootBeerList.count <=0) {
        [self addRootBeerToCoreData:webRootBeerList];
    }else{
        //otherwise I want to update the core data object if object data is different.
        for(RootBeer* currentRootBeer in webRootBeerList){
            RootBeer* mRootBeer = [moc existingObjectWithId:currentRootBeer error:nil];
        }
    }



}

我还考虑过使用嵌套for循环来检查每个数组中的数据,但这看起来很糟糕。 任何帮助或想法都会很棒。

1 个答案:

答案 0 :(得分:0)

你想制作一个NSFetchRequest。您可以设置实体并提供谓词。真的很简单干净。