2011年3月21日 星期一

core data model的讀寫

1. 新增一行資料至table
ex:
假設model的類別為Person

Person *person = [NSEntityDescription    
   insertNewObjectForEntityForName:@"Person" 
   inManagedObjectContext:self.managedObjectContext];
if(person != nil)
{
        person.age = [NSNumber numberWithInt:1];
        person.name = @"peter";
        
        NSError *saveError = nil;
        if([self.managedObjectContext save:&saveError] == YES)
        {
            NSLog(@"save new rocord successfully");
        }
}
說明:
利用insertNewObjectForEntityForName:inManagedObjectContext: method新增資料。不過這只是暫時的,若要真的將資料存入database,需呼叫NSManagedObjectContext物件的save: method


2. 從table讀取資料
ex:
假設model的類別為Person
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc
    init];

NSEntityDescription *entity = [NSEntityDescription  
    entityForName:@"Person" 
    inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSError *error = nil;
NSArray *personArray = [self.managedObjectContext 
    executeFetchRequest:fetchRequest error:&error];
for(Person *person in personArray)
{
   NSLog(@"name %@", person.name);
}
說明:
(1)利用NSFetchRequest物件設定尋找的條件
(2)運用NSManagedObjectContext物件的executeFetchRequest:error: 
   method尋找符合條件的資料。





沒有留言:

張貼留言