2013-02-27 124 views
0

我想impliment更新方法为我的核心数据类,但有问题。核心数据更新方法混淆

-(BOOL)updateFromObject:(NSPredicate *)_find ToDesire:(NSPredicate *)_desire { 

    NSFetchRequest *request = [[NSFetchRequest alloc]init]; 
    [request setEntity:entitydescription]; 
    [request setPredicate:_find]; 
    NSError *error = nil; 
    NSArray *matchData = [context executeFetchRequest:request error:&error]; 
    if (matchData.count <=0) { 
     NSLog(@"Nothing to do"); 
     return NO; 
    } 
    else { 
     for (NSManagedObject *obj in matchData) { 
      /* 
      this is my problem 
      how could i update my _desire to my object 
      */ 
     } 
     [context save:&error]; 
     return YES; 
    } 
} 
+1

谓词用于*过滤*一组对象。谓词不会描述可以设置的值。如果你调用这个函数,那么'ToDesire'参数会是什么? – 2013-02-27 15:19:07

回答

0

终于我做到了。

-(BOOL)updateFromObject:(NSPredicate *)_find withNewData:(NSDictionary *)_data { 
    NSFetchRequest *request = [[NSFetchRequest alloc]init]; 
    [request setEntity:entitydescription]; 
    [request setPredicate:_find]; 
    NSError *error = nil; 
    NSArray *matchData = [context executeFetchRequest:request error:&error]; 
    if (matchData.count <=0) { 
     NSLog(@"Nothing to update"); 
     return NO; 
    } 
    else { 
     for (NSManagedObject *obj in matchData) { 
      //obj = [[NSManagedObject alloc]]; 
      [obj setValuesForKeysWithDictionary:_data]; 
     } 
     [context save:&error]; 
     return YES; 
    } 
}