質問

だからこれはかなり奇妙な広告です。トラブルが資産リブラリーAPIとの関係があるかどうかわからないが、他に何が起こっているかを理解することはできません。

AlassetSgroupでは、-enumerateassetSusingBlockメソッドを使用してアラセットをアラセットでロードしています。完了すると、カスタムイメージスクロールがロードされています。スクローラがスクロールを終了すると、NSInvocationOperationsを使用して、現在表示されているビュー(ページ)の画像をディスク上のフォトライブラリからロードします。画像がロードされてキャッシュされると、それはデリゲートに通知し、それはキャッシュからイメージをつかみ、それをスクローラの画像ビューに表示します。

すべてがうまく機能しますが、-SetImage:実際には実際に表示されている時までに呼び出されます。実際には、実際には10秒以上表示されます。

画像のサイズ変更の有無にかかわらず、サイズ変更を行ったときの処理時間にはほとんど何も追加しました。私が言ったように、スローダウンはイメージビューのスネット画像を呼び出した後、どこかであります。これを引き起こす可能性のあるAssetLibrary APIのいくつかの種類の側面を認識している人は誰でもありますか?

これはいくつかの関連コードです:

- (void)setImagesForVisiblePages;
{
  for (MomentImageView *page in visiblePages)
  {
    int index = [page index];
    ALAsset *asset = [photos objectAtIndex:index];

    UIImage *image = [assetImagesDictionary objectForKey:[self idForAsset:asset]];

    // If the image has already been cached, load it into the
    // image view. Otherwise, request the image be loaded from disk.
    if (image)
    {
      [[page imageView] setImage:image];
    }
    else {
      [self requestLoadImageForAsset:asset];      
      [[page imageView] setImage:nil];
    }
  }  
}
.

役に立ちましたか?

解決

これはおそらく、資産記号に関する問題を解決することを目的としているWeb検索をめちゃくちゃにします。問題がまったく資産全体ではなく、むしろマルチスレッドの使用ではないことがわかりました。画像が完成したら、デフォルトのNSNotificationCenterを使用して通知を投稿していました。それはそれをバックグラウンドスレッドに投稿していました。これは、UIImageViewを-SetImageで更新した(少なくとも更新しようとしています)。-perFormSelectorOnMaintHreadを使用してそのセレクタを代わりに画像を設定したら、すべてがうまくいっていました。

私がマルチスレッドでどんなになじみがあるように思われているように思われます、私はまだ時間から時間までのちょっとしたゴッチャを忘れます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top