0

iOS アプリで PFUser をサブクラス化し、この関数を使用してプロフィール画像を取得しています。 profilePictureであり@NSManaged PFFileprofilePictureImageUIImage です。

getData()これは、とfetchIfNeeded()がメイン スレッドで長時間実行される可能性があるという事実を除いて、うまく機能します。

怖い部分がバックグラウンド スレッドで実行されるように、このメソッドを実装する良い方法を考えられる人はいますか?

ありがとう!

func image() -> UIImage!
{
    if !(self.profilePictureImage != nil)
    {
        if self.profilePicture != nil
        {
            self.fetchIfNeeded()
            if let data = self.profilePicture!.getData() {
                self.profilePictureImage = UIImage(data: data)
                return self.profilePictureImage
            }
        }else {
            return UIImage(named: "no_photo")!
        }
    }
    return self.profilePictureImage
}
4

2 に答える 2

0

画像を返すのではなく、画像が利用可能になったときに呼び出されるクロージャーを受け取り、それをパラメーターとして渡すようにメソッドを変更します。イメージをダウンロードする必要がある場合は、すぐに呼び出すことも、少し遅れて呼び出すこともできます。

于 2015-06-23T19:38:19.720 に答える