2011年6月5日 星期日

ManagedObjectContext

先在該view controller定義一個
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext; 


在<ClassName>AppDelegate.m 中的 - (BOOL)application:didFinishLaunchingWithOptions: 把managedObjectContext帶給viewController的managedObjectContext。如此一來在可以view controller就可以用了。

    rootViewController.managedObjectContext = context;

找出是哪一個Context

    Cost *costEvnet = (Cost *)[NSEntityDescription insertNewObjectForEntityForName:@"Cost" inManagedObjectContext:self.managedObjectContext];
    
設定內容
    [costEvnet setType:@"Food"];
    [costEvnet setMoney:[NSNumber numberWithInt:200]];
    [costEvnet setCostDate:[NSDate date]];
    
存檔
    NSError *error = nil;
    if (![self.managedObjectContext save:&error]) {
        NSLog(@"RootViewController save Failed.");
    }

建立要求
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:entityDescription];

執行要求並回傳到Array中
    NSError *error = nil;
    NSMutableArray *objects = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];

刪除記錄

        NSManagedObject *eventToDelete = [ self.contextMutableArray objectAtIndex:indexPath.row];
        [self.managedObjectContext deleteObject:eventToDelete];

沒有留言:

張貼留言