1

UIImage の配列であるプロパティと、(同じ画像を表す) imageURL の配列であるプロパティを含むデータ モデルがあります。

特定のビューをロードすると、 SDWebImage を使用して URL からの画像をスクロールビューに取り込みます

for (NSURL *url in self.project.imageURLs) {
    UIImageView *imageView = [[UIImageView alloc]init];
    [imageView setImageWithURL:[NSURL URLWithString:urlString] placeholderImage:[UIImage imageNamed:@"loading"] usingActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    [imageView setContentMode:UIViewContentModeScaleAspectFit];
    [self.scrollview addSubview:imageView];
    ...some other frame calculations...
}

私の質問は、UI をロックせずにこれらの UIIamges をデータ モデル (self.project.images) に同時にロードするにはどうすればよいかということです。ある種のdispatch_asyncだと思いますが、これをどこで呼び出すかわかりません。

一部の画像は Web ソースからのものであり、一部はローカル デバイス/カメラからのものであるため、両方のプロパティがあります。

考えられる解決策の 1 つは、最初に URL を使用してデータ モデルを非同期にロードするときに、その時点で UIImage をロードすることですが、必要のない大きなメモリ チャンクを使用しているようです。最大 20 個のプロジェクトをロードしているため、すべて画像の配列が含まれています。

4

1 に答える 1