0

私は自分のプロジェクトで ASIHttprequest を使用しました。次のように、iOS 開発のブロックで ui を変更すべきではないことを知っています。

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

MainThread で ui を変更する必要があることはわかっていますが、上記のコードが間違っている可能性があります。しかし、私はこれを数か月間使用しましたが、それが間違っていた場合、なぜまだ機能したのですか? Objective-CのスレッドとUIについて本当によくわかりません。誰か教えてもらえますか?

4

1 に答える 1

0

ブロックとスレッドの 2 つの異なるものがあります。ブロック内のコードは、バックグラウンドまたはメイン スレッドで実行できます。あなたの場合、あなたはすべて正しいことをします.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/ココア/リファレンス/財団/クラス/NSThread_Class/リファレンス/Reference.html

2) ブロックについて: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html

于 2012-12-11T11:23:56.533 に答える