0

アプリがインターネットに接続されていない場合、次回表示するために画像をダウンロードする必要がある iOS アプリを開発しています。

この画像をリクエストからサーバーにダウンロードするための URL を取得します。画像の URL を含む「image」フィールドを含む json を取得します。この画像をダウンロードして保存するには、次のようにします。

NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:utfString]];
[data writeToFile:[NSString stringWithFormat:@"%@/%@",documentsDirectoryPath,@"superPremio"] atomically:NO];

これは、成功したサーバー呼び出しブロック内で呼び出されます。だから私はこれを同期的に行っていません。このサーバー呼び出しはviewDidLoad、画像を表示する必要があるビュー コントローラーで行われています。このビュー コントローラーには UIScrollView があり、このスクロール ビューは、画像がメモリに書き込まれるときに遅延を経験しています。すべてがバックグラウンド処理で行われるため、なぜこれが起こっているのかわかりません...何か考えはありますか?

ありがとう!

4

1 に答える 1

2

データ取得プロセス

NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:utfString]];

非同期ではなく、UI の遅延の問題を引き起こしています

この回答を使用して非同期にします

于 2013-04-02T19:00:20.047 に答える