2012-07-07 33 views
1

我有一個問題。何時真的可以訪問NSManagedObject?

我有一個名爲「mapController」的NSObjectController,我想在創建對象時放置一些默認值。我按照文檔中的建議,在我的文檔的windowControllerDidLoadNib方法中執行此操作。但是......

if (![mapController content]){ // No map defined yet. 
    [mapController add: self]; // This should create the instance. 

    NSLog(@"%@",[mapController content]); // Gives NULL. 

我想:

BOOL ok = [mapController fetchWithRequest:nil merge:NO error:nil]; 
    NSLog(@"%@",[mapController content]); // Gives NULL. 

mapController的內容是在覈心數據「便箋」,但我不能訪問它。我必須這樣設置其屬性之一:

[[mapController content] setValue:[matrix colorReference] forKey:@"mapData"]; 

這給沒有錯誤,因爲更改的文件被標記,但我測試值:

NSLog(@"%@",[mapController content]); // Gives NULL. 

當赫克它的控制器內容真的在這裏?屏幕上出現一些內容,但實際上是什麼?讀取文檔並不能幫助我......

回答

1

OK,我找到了答案在docs:

地址:創建一個新對象,並將其設置爲接收器的內容對象。

討論

創建(由objectClass的指定)的適當實體(由 的entityName指定)或類的新對象 - 見NEWOBJECT-並設置 它作爲使用ADDOBJECT接收機的內容對象:.

特殊注意事項

與Mac OS X v10.4的此方法的結果開始被推遲 直到runloop的下一次迭代使得誤差呈現 機構可提供反饋作爲片材。

這就是爲什麼當在應用程序的其他地方被稱爲

[[mapController content] setValue:[matrix colorReference] forKey:@"mapData"]; 

工作的罰款。這是幾個迭代後...

呃...也許這個帖子將節省你幾個小時,你可以用來睡更長時間。

問候,

伯納德

0

我不認爲這是你的mapController,我覺得這是你的NSLog。試試這個:

NSLog(@"%@", mapController); 

也嘗試從內容的一些簡單的數據,像CGColorRef的浮點值,所以你可以使用其他格式化喜歡%F。

我會測試這個,但我似乎無法創建一個NSObjectController的實例,因爲它是一個未聲明的標識符。它定義了什麼框架?你是否需要#進口任何東西?

相關問題