0

@stee の助けのおかげで、画像を取得して parse.com の適切なクラスにアップロードすることができました。今、アップロードに使用したのと同じ uiimageview に同じ画像を表示することはできません。

@stee と @Joey の助けを借りて、以下のコードを viewdidload に追加することができました。*image の変数が未使用であるという警告が表示され、コンパイルして実行するとアップロードできますが、そのコントローラーを離れるとすぐにイメージが表示されません。

- (void)viewDidLoad {
[super viewDidLoad];

PFFile * myPFFile = [[PFUser currentUser] objectForKey:@"ProfilePicture"];
[myPFFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
    if (!error) {
        UIImage *image = [UIImage imageWithData:data];
        // image can now be set on a UIImageView
    }
}];
}

私が行ったことを理解するのに役立つ場合は、写真をアップロードするために使用したコードを以下に示します

PFObject *User = [PFUser currentUser];
NSData *imageData = UIImageJPEGRepresentation(_imageView.image, 0.8);
NSString *filename = [NSString stringWithFormat:@"%@.png", _username.text];
PFFile *imageFile = [PFFile fileWithName:filename data:imageData];
[User setObject:imageFile forKey:@"ProfilePicture"];

私のviewdidloadに欠けているものはありますか? .h ファイルに何か足りないものはありますか?

私の.hファイルには、次のようなuiimageviewがあります。

@property (strong, nonatomic) IBOutlet UIImageView *imageView;

これを可能にするためのさらなる助けをいただければ幸いです。

4

2 に答える 2

0

選択した画像をディスクに保存するか、コントローラで「viewDidLoad」するたびに Parse からユーザー プロファイルを要求することができます。

を使用して画像をディスクに[_imageView.image writeToFile:myFilePath atomically:YES];保存すると、ネットワーク リクエストを行う手間が省けますが、ユーザーがアプリ以外の方法で画像を変更できる場合は、おそらく最良の選択ではありません。

毎回画像をリクエストすることに関しては、[PFUser currentUser]. PFFile *fileフェッチを実行すると、 fromを取得できます[PFUser currentUser]["ProfilePicture"]。PFUser から PFFile を取得したら、変換に進むことができます。

[myPFFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
  if (!error) {
    UIImage *image = [UIImage imageWithData:data];
    // image can now be set on a UIImageView    
  }
}];

教えていただいた情報をもとに説明できるのは、これくらいです。

于 2015-02-11T16:10:16.467 に答える