2012-10-22 92 views
2

我對編程的一般和客觀的c核心數據非常陌生。我試圖從電子表格讀取數據並將其顯示在tableview中。我創建的用於容納對象的數組是空的。我不確定如何將數據保存到數組。另外,我收到一條警告,說明存儲的值永遠不會被讀取。我非常感謝這方面的任何幫助 - 在我的智慧結尾。如何將提取的對象保存到核心數據中

這裏是我的代碼:

DataStorage *parentTab; 
parentTab = (DataStorage *)self.parentViewController; 
_context = [parentTab context]; 

[self populateCollegeObjects]; 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *dataEntity = [NSEntityDescription entityForName:@"CollegeList"  inManagedObjectContext:_context]; 
[fetchRequest setEntity:dataEntity]; 

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"collegeName" ascending:YES]; 

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 

[fetchRequest setSortDescriptors:sortDescriptors ]; 
[sortDescriptors release]; 
[sortDescriptor release]; 

NSFetchedResultsController *controller = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:nil]; 
[fetchRequest release]; 

NSError *error; 
[controller performFetch:&error]; 

for (int counter = 0; counter< [sortDescriptors count]; counter ++) 
{ 
    if ([_collegeObjects count] == 0) 
    { 
     _collegeObjects = [[NSArray alloc] init]; 

     CollegeList *addCollege; 

     //addCollege = [CollegeList initWithName:<#(NSString *)#> andURL:<#(NSString *)#> andDetail:<#(NSString *)#> forContext:<#(NSManagedObjectContext *)#>_context]; 
    } 
} 
+0

我認爲sortDescriptors和fetchRequest發佈語句應該在performFetch方法之後。 – user427969

+0

對不起,我沒有得到一件事 - 你在NSFetchedReultsController中獲取數據,然後保存該數據(使用initWithName)? – user427969

+0

你到底在問什麼?你想從電子表格讀取數據並將它們放在tableview中,然後你有一個空的數組?這個數組來自哪裏?在你的問題中,你一次沒有提到核心數據。你在哪裏需要核心數據? – yeesterbunny

回答

0

我真的不知道你的問題是什麼。該陣列是否會被核心數據中的實體填充?

也許你可以試試這個,看看這可以幫助:

[fetchRequest setEntity:dataEntity]; 
NSArray *fetchedObjects = [_context executeFetchRequest: fetchRequest error: nil]; 

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"collegeName" ascending:YES]; 

NSArray *sortDescriptors = @[sortDescriptor]; 
NSArray *sortedFetchedObjects = [fetchedObjects sortedArrayUsingDescriptors:sortDescriptors]; 

的sortedFetchedObjects應該包含你正在尋找排序的對象數組。

+0

我嘗試了您建議的代碼,並將發佈語句移至@ user427969推薦的執行提取方法之後。兩者都無效 - 數組仍然是空的。 – user1563342

相關問題