2012-08-03 182 views
0

我對CoreData編程有點新,所以我不知道如何去做這件事。我試圖更新一個存儲在CoreData對象中的字符串,但我並沒有想到如何做到這一點。這裏是我的代碼:如何更新CoreData中對象的值?

此處,我做新的對象:

- (void)insertNewObject:(id)sender 
{ 
    self.steakName = @"No Name"; 
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext]; 
    NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity]; 
    NSManagedObject *newManagedObject = [NSEntityDescription  insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context]; 

    [newManagedObject setValue:self.steakName forKey:@"steakName"]; 

    // Save the context. 
    NSError *error = nil; 
    if (![context save:&error]) { 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
     abort(); 
    } 
} 

這裏就是我想更新它:(它在不同的類,然後在那裏它正在就進行更新。)

- (IBAction)update:(id)sender { 
    MasterViewController *masterViewController = [[MasterViewController alloc] init]; 
    masterViewController.steakName = [self.steakNameTextField text]; 
    self.detailDescriptionLabel.text = masterViewController.steakName; 
    NSLog(masterViewController.steakName); 
} 

謝謝你的幫助! :)

+0

這個問題有點不清楚,你的代碼看起來像它會工作,所以我們不知道你有什麼問題。 – 2012-08-03 21:39:48

+0

我沒有問題,我只是想弄清楚怎麼做,所以我給你我已經有的代碼。 – 2012-08-03 22:29:38

回答

0

你這樣做差不多就像你沒有核心數據一樣。將對象引用爲創建它的類中的屬性,並進行所需的任何更改。唯一的區別是,當您想要更改持續時,您可以再次保存您的上下文。

+0

但是表中會有多個對象,那麼這將如何工作? – 2012-08-03 22:32:59

+0

我也試圖改變它在不同於創建它的類中的對象,那麼我將如何保存上下文? – 2012-08-03 22:39:59

+0

如果您嘗試將其保存在不同的課程中,則必須將您的上下文傳遞給該課程。事實上,如果你一直傳遞對象,你可以向對象請求它的上下文,而不是傳遞上下文。 self.myObject.managedObjectContext ... – Jamie 2012-08-03 23:41:23