我剛剛在學習核心數據,主要是應對,但在思考如何實現它時遇到了一些麻煩。如何在類之間使用Core Data?
我想從整個我的應用程序訪問相同的核心數據。從多個類訪問它的最佳方式是什麼?建議將它作爲全局變量(通常不推薦用於面向對象的編程),或者將它作爲類間的實例變量傳遞?
我剛剛在學習核心數據,主要是應對,但在思考如何實現它時遇到了一些麻煩。如何在類之間使用Core Data?
我想從整個我的應用程序訪問相同的核心數據。從多個類訪問它的最佳方式是什麼?建議將它作爲全局變量(通常不推薦用於面向對象的編程),或者將它作爲類間的實例變量傳遞?
核心數據模型將在整個應用程序中可用。您可以輕鬆訪問您的應用程序中的託管對象。你只需要創建一個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
(或任何方便的方法)圖案名對象,在需要它的其他視圖控制器。
通過NSManagedObjectContext
實例,或者如果您只需要處理一個對象的實例,就可以轉到下一個類。
就像在Xcodes Core Data模板中完成的一樣。
查看MagicalRecord庫。它不僅使許多常見獲取請求更加簡潔,而且還使得訪問受管對象上下文更簡單,只需使用[NSManagedObjectContext defaultContext];