2012-03-28 59 views
0

我剛剛在學習核心數據,主要是應對,但在思考如何實現它時遇到了一些麻煩。如何在類之間使用Core Data?

我想從整個我的應用程序訪問相同的核心數據。從多個類訪問它的最佳方式是什麼?建議將它作爲全局變量(通常不推薦用於面向對象的編程),或者將它作爲類間的實例變量傳遞?

回答

5

核心數據模型將在整個應用程序中可用。您可以輕鬆訪問您的應用程序中的託管對象。你只需要創建一個AppDelegate類的實例。

例如說你已經存儲了聯繫人。您可以在任何視圖控制器中使用[managedObject valueForKey:@"name"]

1.創建一個實例的的appDelegate

self.theappDel=[[UIApplication sharedApplication] delegate]; 

2.獲取的上下文中,獲取請求和實體描述。

NSManagedObjectContext*context=[self.theappDel managedObjectContext]; 
NSEntityDescription*entity=[NSEntityDescription entityForName:@"Contacts" inManagedObjectContext:context]; 
NSFetchRequest*request=[[NSFetchRequest alloc] init]; 
[request setEntity:entity]; 
NSManagedObject*managedObject=nil; 
NSError*error=nil; 
NSArray*objectList=[context executeFetchRequest:request error:&error]; 

3.獲得從所述陣列管理的對象。

if([objectList count]>0) 
managedObject=[objectList objectAtIndex:0]; 
NSLog(@"The name: %@",[managedObject valueForKey:@"name"]) 

4.傳遞使用singleton(或任何方便的方法)圖案名對象,在需要它的其他視圖控制器。

1

通過NSManagedObjectContext實例,或者如果您只需要處理一個對象的實例,就可以轉到下一個類。

就像在Xcodes Core Data模板中完成的一樣。

1

查看MagicalRecord庫。它不僅使許多常見獲取請求更加簡潔,而且還使得訪問受管對象上下文更簡單,只需使用[NSManagedObjectContext defaultContext];

相關問題