パフォーマンスを良くするために、スレッドセーフをあえて捨てて単純化しているのです。ある次のメソッドを使います。waitUntilDone:(BOOL)waitこれで、メインスレッドでレシーバのメソッドが呼び出されます。表示させたい場合は、次のように書けばメインスレッドで安全に画面表示を更新できます。オブジェクトにアクセスすると何が起こるのでしょうか。結論から書くと、何が起こるかは「不定」です。何事もなく動作することもありますし、同じ処理でもタイミングによってはクラッシュを起こすこともあります。レイアウトの崩れです。アクセスしているということが何度かありました。アクセスしてしていたのです。経由で呼び出されるメソッド、デリゲートメソッドなどに入りこむ傾向があります。しているプロパティがバックグラウンドスレッドで変更されたら、オブザーバのメソッドも同じバックグラウンドスレッドで呼び出されます。更新してしまったりするのです。回避するためには、そもそもの変更や通知の発生源をメインスレッドに限定するか、呼び出された側でメインスレッドかどうかを判別して適宜処理を振り分けます。メソッドでチェックできます。バックグラウンドスレッドからアクセスするのはさまざまなやっかいな問題を引き起こします。内の原因不明のクラッシュやレイアウト崩れは、メインスレッド以外からのアクセスが発生していないかも含めて調査してみることをおすすめします。