2013-03-02 78 views
0

我在從iOS設備上的核心數據模型中提取對象時出現問題。使用模擬器時,對象成功獲取,但是,在設備上使用NSMutableArray以使對象變空。當我獲取AppDelegate.m中的對象時,它會正確返回對象,但是當我在View Controller中獲取它們時,會發生錯誤。我搜查了很多互聯網,我找不到解決問題的辦法。我在應用程序加載時獲取對象,得到此錯誤意味着應用程序將無法工作。提前致謝。iOS設備上的核心日期提取請求

P.S:在進行測試時,越獄iPhone手機的功能不正確嗎?另外請注意,我創建了另一個使用Core Data的應用程序,它的功能正常,我真的不知道這個應用程序有什麼問題。

- (void)loadCategoriesFromDatabase{ 

categoriesInDatabase = [[NSMutableArray alloc] init]; 

NSFetchRequest *fetchRequest = [NSFetchRequest alloc]; 
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Category" inManagedObjectContext:managedObjectContext]; 

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"display_order" ascending:YES]; 
NSArray *sortArray = [NSArray arrayWithObject:sortDescriptor]; 

[fetchRequest setSortDescriptors:sortArray]; 
[fetchRequest setEntity:entityDescription]; 

self.categoriesInDatabase = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; 
+0

請你可以發佈有問題的獲取請求的代碼? – Simon 2013-03-02 19:53:51

+0

我已經發布了代碼。 – Badie 2013-03-02 21:19:18

+0

你可能沒有正確初始化你的'NSMutableArray';使用'self.categoriesInDatabase'作爲你的第一行。另外,檢查'executeFetchRequest'後面的錯誤(你正在傳遞一個'nil'參數,這沒有幫助)。 – 2013-03-02 21:56:07

回答

1

嘗試傳遞一個NSError指針executeFetchRequest這樣

NSError* error = nil; 
NSArray* categories = [managedObjectContext executeFetchRequest:fetchRequest 
              error:&error]; 
if(error) { 
    NSLog(@"%@", [error debugDescription]); 
} 
self.categoriesInDatabase = [categories mutableCopy]; 

和發佈日誌與錯誤。

+0

我設法通過正確地初始化'NSFetchRequest'來解決這個問題。謝謝你的幫助。 – Badie 2013-03-03 20:32:12