0

我在我的项目中使用了 ASIHttprequest,我知道我不应该在 iOS 开发的一个块中更改 ui,如下所示:

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

我知道我应该在 MainThread 中更改 ui 并且可能是上面的代码是错误的。但是我已经用了几个月了,如果它错了,为什么它仍然有效?我真的不太清楚objective-c中的线程和ui,有人可以教我吗?

4

1 回答 1

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

于 2012-12-11T11:23:56.533 回答