ユーザーがログインした後の最初のView Controllerには、ユーザーが自分のアカウントにカスタム画像をアップロードしたかどうかを確認するクイックチェックがあります。 (持っている場合は、ユーザーのプロフィールデータにURLがあります)UIImageViewはHTTPからダウンロードした画像を表示しますが、画像リソースは表示されません
これらの画像は自分のコードで正しくダウンロードされ、美しく表示されます。カスタムユーザーイメージがなく、VCが同じUIImageViewを既定のピクチャ(xcassets内)に設定しようとすると、問題が発生します。私が知る限り、画像はバンドルにロードされており、有効なPNGファイルです。
ここに画像を設定するスニペットがあります。カスタムURLが見つからない場合は、URLパラメータ文字列を「nil」に設定します。
-(void) setImageWithUrl: (NSString *) Url Imageview: (UIImageView *) image {
if (Url.length > 4) {
NSURL *url = [NSURL URLWithString:Url];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *Profileimage = [UIImage imageWithData:data];
[image setImage:Profileimage];
}
else {
UIImage *Profileimage = [UIImage imageNamed:@"DefaultPicture"];
[image setImage:Profileimage];
}
}
私はこのナットを運転しているので、すべての奇妙なアイデアは大歓迎です。 :-)
私があなたが考えられるコードの他の部分を投稿したいのであれば教えてください。
デバッグでブレークポイントを設定しましたか?もしそうなら、フローは 'if(Url.length> 4)'で実際に失敗し、 'else'に落ちますか?もしそうなら、 'Profileimage'は' [UIImage imageNamed:@ "DefaultPicture"]; 'から有効な画像を取得しますか?どの質問に「いいえ」という回答があるのかを調べると、解決策を見つけることができます。 – DonMag
@DonMag標準のデバッグドリルは成功しました。 Url.lengthは、データベースがユーザープロファイルに入れることがある「余計なガベージ」のために、常に4よりも大きいことが判明しました。コード内でこれを説明することで問題が解決されました。 –