2
我不清楚使用UI對象的程度不安全。我有一些代碼,我剛剛移動到另一個隊列(使用NSOperation和NSOperationQueue)。我檢討,我需要清理非安全的代碼,跑翻過這一點:在後臺線程上實例化UI對象是否安全?
alertNoDatabaseSelected = [[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"You Haven't Enabled Any Databases", nil)
message:[NSString stringWithFormat:NSLocalizedString(@"You can't search unless you choose at least one database in your settings.", nil), self.currentSearchEntity.keywords]
delegate:self cancelButtonTitle:NSLocalizedString(@"Settings", nil)
otherButtonTitles:nil] autorelease];
[alertNoDatabaseSelected show];
都是這些線路的主線程的不安全之外?我確實有一些崩潰的行爲,這看起來像我應該看看的第一種重構類型。
UPDATE 這可能是一個更廣泛的關注。我有兩個NSManagedObjectContexts,一個在主線程中,另一個在另一個線程中。當我同步這些上下文時,會發生很多UI更新(尤其是表視圖)。我想知道是否需要採取任何特殊措施來確保同步在主線程上自動啓用此功能,還是必須執行某些操作才能使其發生這種情況? (我可能需要在此寫另一個問題。)
我想我會使用dispatch_async(dispatch_get_main_queue(),^ {...})來照顧這些塊。 – Jim 2012-02-21 20:08:09