2011-08-31 29 views
0

下面在asyncReloadAndMoveToEnd中,我們引用了作爲實例變量的對話。當已經檢索到實例變量時,是否必須使用objectWithID?

爲了訪問conversation.messages,我們是否需要通過一個單獨的託管上下文通過objectID檢索該對象。

- (void) reloadTable { 
    [self.tbl reloadData]; 
} 

- (void) asyncReloadAndMoveToEnd { 

    // is this the right way since it's in a separate thread? 
    NSArray* messages = [conversation.message allObjects]; 

    [self performSelectorOnMainThread:@selector(reloadTable) withObject:nil waitUntilDone:NO]; 
} 

- (void) reload:(bool) inMoveToEnd { 

    NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self 
                      selector:@selector(asyncReloadAndMoveToEnd) 
                       object:nil]; 

    [queue addOperation:operation]; 
} 
+0

你的代碼看起來很不穩定。有錯字嗎?你是不是要說'@selector(reload)'而不是'@selector(reload:)'? 'reload:'異步調用'asyncReloadAndMoveToEnd'(當然),然後'asyncReloadAndMoveToEnd'調用'reload:',也是在主線程運行循環的下一次迭代中執行異步調用。它似乎會反彈。由於它看起來像一個聊天應用程序,也許這就是你的意圖。 – morningstar

+0

糟糕,我稍微更新了它。 – tjg184

回答

0

如果你想獲取在一個UITableView顯示ManagedObjects,NSFetchedResultsController強烈推薦。它處理存儲,緩存和所有一般繁重的工作.Ray Wenderlich在其使用方面有很好的tutorial

+0

感謝您的留言。我可能不得不最終訴諸於此類。 – tjg184

相關問題