2011-12-19 82 views
0

這是我的情況..我是Objective-C中的新成員,我正在嘗試創建我的第一個核心數據示例,但我一直被困在這個太多的小時中。代碼應該在我的Points實體中插入一個名爲「id」的屬性。這裏是我的一段代碼,我希望你們能幫助我找出我錯過或錯誤的地方。爲什麼我的實體對象沒有插入數據?

location.m

-(IBAction)insert_click:(id)sender{     
    NSNumber* x = [NSNumber numberWithInt: 10]; 
    Msa_v3AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
    NSManagedObjectContext *context = [appDelegate managedObjectContext]; 
    Points *p =(Points *) [NSEntityDescription insertNewObjectForEntityForName:@"Points" inManagedObjectContext:context]; 
    [p setId:x];  

    NSError *error;  
    if(![managedObjectContext save:&error]){   
     //handle error  
    } 
} 

**的位置類是NSObject類

Points.h

@interface Points : NSManagedObject 
{ 
} 

@property (nonatomic, retain) NSNumber * id; 

@end 

Point.m

@implementation Points 

@dynamic id; 

@end 

的代碼是編譯好,是se沒有錯誤或警告消息,但插入仍然無法正常工作..任何線索?

+0

你如何得出結論,插入不工作?您必須獲取實體。你能顯示執行提取的代碼嗎? – Jim 2011-12-19 19:32:17

+0

您還可以使用SQLite查看器應用程序檢查數據庫,以確定數據是否已插入。 – aslisabanci 2011-12-19 21:44:40

+0

感謝您的意見,我們acctualy插入數據的代碼,問題出在我的提取方法。 – 2011-12-19 22:24:53

回答

0

最後我得到了解決這個問題的,我想通了,我的應用程序實際上是插入數據,但我的取出方法是錯誤的,我是初始化我的實體對象像

Points *p =(Points *) [NSEntityDescription insertNewObjectForEntityForName:@"Points" inManagedObjectContext:context]; 

,而不是

Points *p =(Points *) [NSEntityDescription EntityForName:@"Points" inManagedObjectContext:context]; 
相關問題