2012-12-11 17 views
0

我用ASIHttprequest在我的項目,我知道我不應該在iOS開發一個區塊改變UI,爲打擊:我在我的項目中使用了ASIHttprequest,我可以在完成塊中更改UI嗎?

[request setCompletionBlock:^{ [self.view addSubview:view1]; }]; 
[request setFailedBlock:^{ [view removeFromSuperView]; }]; 

我知道我應該在MainThread改變UI,並且可以是上面的代碼是錯誤的。但是我已經用了幾個月,如果它錯了,爲什麼它仍然有效?我真的不清楚Objective-C中的線程和用戶界面,任何人都可以教我嗎?

回答

0

有兩種不同的東西:塊和線程。您可以在後臺或主線程中的塊中執行代碼。在你的情況下,你做的一切都是正確的:你在MainThread中執行更改UI。

你可以看看更多有關這個主題 -

1)有關線程: https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class /Reference/Reference.html

2)有關塊: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html

+0

我還沒有看到文章,但我通過你的你的話休息我的心臟。我很快就會看到這些文章,謝謝。 – Zhou

相關問題