私のiOSアプリケーションでは、バックグラウンドスレッド(performSelectorInBackground
を使用)でいくつかの作業をしています。このスレッドでは、私は、JSON文字列を解析するためにNSJSONSerialization、そのクラスのメソッドを使用しています:クラスメソッドとスレッドの安全性(NSJSONSerialization)
self.json = [NSJSONSerialization JSONObjectWithData:self.data options:0 error:nil];
は、このクラスのメソッド(JSONObjectWithData
)はスレッドセーフですか?私はこれについて確かめることができますか?ドキュメントにはどこに書かれていますか?
私が知っているインスタンスメソッドは一般にスレッドセーフではありませんドキュメントがそうでない限り、特に指定しない限り、クラスメソッドはスレッドセーフであると一般に言えますか??
最良の方法は、[NSJSONSerialization JSONObjectWithData]上で並列操作をすることです:私が得た応答がNSJSONSerializationは、スレッドセーフであるということでした。もし誰もあなたにそれがスレッドセーフであると言わなければ、それはスレッドセーフではありません;) –
残念ながら、スレッド安全性を記述している文書はNSSSONSerializationを表示するように更新されていません。 http://developer.apple.com/library/ios/#Documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html –
self.jsonを使用したい場合は、スレッドセーフにしてから動作させますか? – Exploring