NSDictionary
からオブジェクトを取得しようとすると、私はかなり困惑します。 objectForKey
を呼び出すとEXC_BAD_ACCESS
と表示されます。与えられたオブジェクトを見ると、すべてが問題ありません。辞書が存在します。それは私が探している鍵を含んでいます。キーもそこにあります。すべてがまったく問題ありません。この機会になぜobjectForKey
がクラッシュするのですか?私はコードとコンソールの両方のスクリーンショットを撮った。あなたは問題のプロパティをプリントアウトで見ることができる。キーはそこにあり、辞書にはそのキーが含まれています。しかし、その辞書は存在しないか、何か?うんざりするちなみに私は辞書をコピーしてクラッシュを修正しようとしていましたが、通常はそうしませんでした。NSDictionary objectForKeyを実行中にEXC_BAD_ACCESSが発生しますが、オブジェクトはそこにあります
0
A
答えて
0
ここでの問題は、スレッドでTODOました。私がコメントで正しく思い出されたので、NSMutableDictionaryはスレッドセーフではありません。バックグラウンドスレッドで更新され、上記のコードがメインスレッドで呼び出されていました。最も単純な解決策は、これらの呼び出しを@synchronizedでラップすることでした。すべての人のおかげで助けになりました。
if ([update uniqueId]) {
@synchronized (self.downloadProgress) {
if ([self.downloadProgress objectForKey:[update uniqueId]]) {
NSDictionary *progressInfo = [[self.downloadProgress objectForKey:[update uniqueId]] copy];
if ([progressInfo objectForKey:@"progressString"]) {
return [progressInfo objectForKey:@"progressString"];
}
}
}
} (
関連する問題
- 1. スクロール中にEXC_BAD_ACCESSエラーが発生する
- 2. Pythonスクリプトの実行中にエラーが発生しました。AttributeError: 'NoneType'オブジェクトに 'run_line_magic'属性がありません。
- 3. NSDictionary mutableCopyはexc_bad_accessを発生させます
- 4. ルーピングタスクの実行中にタスクエラーが発生する可能性があります。
- 5. アプリケーションの送信中にエラーが発生しましたが、そこにあります
- 6. 実行中にエラーが発生する、またはインテントフィルタが含まれている必要があります
- 7. Powershellを実行中にエラーが発生しました.tabcmdを初期化する必要があります
- 8. 実行中のdjangoプロジェクト中にエラーが発生しました
- 9. Python-magicにOSErrorがあります:IDLEの32ビットバージョンで実行中に[WinError 193]エラーが発生しました
- 10. フォークコードはコンパイルされますが、実行中にエラーが発生します
- 11. 実行中にセグメンテーションコアダンプエラーが発生する
- 12. Matlab、Filterオブジェクトの実装中にエラーが発生しました
- 13. idオブジェクトのKindOfClassが原因でEXC_BAD_ACCESSが発生する
- 14. RAM Tensorflowオブジェクト検出APIを実行中にエラーが発生しました
- 15. キュウリ試験の実行中にエラーが発生しました - ロードするファイルがありません
- 16. プロシージャの実行中にプロシージャにエラーが発生しました
- 17. クラスタで実行中にキャレットにエラーが発生しました
- 18. bowtie2の実行中にbreseqにエラーが発生しました
- 19. コンパイルして実行しますが、そこにはありません
- 20. grailsアプリケーションを実行中にエラーが発生しました
- 21. アンドロイドスタジオでアンドロイドアプリを実行中にエラーが発生しました
- 22. Trieツリーを実行中にエラーが発生しました
- 23. powerpcのvalgrindを実行中にエラーが発生しました
- 24. lostash codecプラグインを実行中にエラーが発生しました
- 25. カスタムudfを実行中にエラーが発生しました
- 26. pythonを実行中にインデックスエラーが発生しました
- 27. heroku pushを実行中にエラーが発生しました
- 28. アプリを実行中にエラーが発生しました
- 29. mapreduceプログラムを実行中に問題が発生しました
- 30. Cronでコマンドを実行中にエラーが発生しました
'self.downloadProgress'プロパティは' NSDictionary'です。所有権属性とは何ですか?私は 'コピー'ではないと思いますよね? –
ログを見るには、 'mutable'インスタンスの' __NSDictionaryM'があります。予想外の権利ですか?だからどこが変更可能になっているのかを確認して修正してください。 –
これを修正するには、次のように 'copy'属性を追加するだけです:' @property(nonatomic、copy)NSDictionary * downloadProgress; 'それが役に立ちそうです。 –