2011-09-11 64 views
2

我想從核心數據中讀取一些數據以進行統計。我的數據模型就像在互聯網上找到的教程中一樣(有點點擊和準備就緒)。但是現在我想處理這些數據。從核心數據中讀取

My功能:

-(int)calcAve { 
    int ret=0; 
    ret = [[stats valueForKey:@"aveScore"] intValue]; 
    NSLog(@"%d",ret); 
    return ret; 
} 

stats距離的.xib到類,它連接的對象。該對象綁定到數據模型中的實體Stats。 [stats entity]返回正確的值。 aveScore是實體stats中的一個對象(無拼寫錯誤,多次檢查!)。沒有錯誤表明我,stats不正確的數據模型:

this class is not key value coding-compliant for the key 

有什麼不對呢?有沒有簡單的方法來讀取核心數據的數據?

+0

您可以通過發佈NSLog(@「stats:%@」,stats)''在'stats'中顯示所有屬性的內容。這給你什麼? – diederikh

+0

輸出:'stats: [entity:Stats,所選對象的數量:1]' – lueda

回答

0

我不確定你在這種情況下managedObject是什麼。但是通常你想在managedObjectContext中存儲同一類的多個managedObject。例如MOC中的幾個食譜對象。每個食譜都有屬性。

您呼籲爲關鍵的價值聽起來合理。檢查那個stats對象的類是什麼。如果它不是NSManagedObject的類或您的自定義子類,則說明您有問題。您只能在CoreData中存儲NSManagedObjects。你可以像這樣的檢查:

NSString *className = NSStringFromClass([stats class]); 
NSLog(@"class name: %@",className); 

你問我建議你嘗試再次讀取CoreData文檔,看看蘋果的示例代碼庫中的食譜舉例的方式。

+0

'stats'的類是'StatsArrayController',它是'NSArrayController'的子類。所以可能會有一個問題。我明天會檢查它。 – lueda

+0

存在問題。你希望你的管理對象不是數組控制器。通過使用[stats content],您可以獲得一組託管對象,但通常不是如何檢索數據。通常你在你的moc上用一個謂詞定義要獲取的對象來生成並執行一個獲取請求。 – GorillaPatch

+0

並記住:CoreData不是數據庫。 – GorillaPatch