0

XML 解析を処理するためのセカンダリ スレッドを備えた iPhone アプリがあります。これらのメソッドの一部では、メイン スレッドで作成および設定されたディクショナリ (変更ではなく検索用) を参照する必要があります。

Apple のドキュメントは、グローバル変数がこれを達成するための最良の方法である可能性があることを示していました。私は今、実装がどのようになるかを確信しています。.m の先頭に辞書を定義し、セカンダリ スレッド内で通常どおりアクセスしますか?

4

1 に答える 1

1

NSDictionary はスレッド セーフであるため、イニシャライザがグローバルを NSMutableDictionary (スレッド セーフではない) として割り当て、セカンダリ スレッドがまだ入力されている間にそれにアクセスしようとしない限り、おそらくスレッドの問題ではありません。

(この場合、イニシャライザは最初に NSMutableDictionary をローカル変数に割り当て、データを入力してから、NSDictionary の+dictionaryWithDictionary:orを使用して完成したローカルをグローバルにコピーする必要があり-initWithDictionary:ます。)

または、初期化時にグローバルを保持していない可能性がありますか?

于 2010-03-08T20:10:20.843 に答える