在Picker上传中显示解析图像

时间:2015-02-11 15:40:26

标签: ios xcode parse-platform uiimagepickercontroller pfobject

感谢@stee的帮助,我能够将图片上传到parse.com上的正确课程。现在我无法在我用来上传的uiimageview中显示相同的图像。

在@stee和@Joey的帮助下,我能够将下面的代码添加到我的viewdidload中。现在我收到警告说*图像的未使用变量,当我编译并运行时,我可以上传但是一旦我离开该控制器,图像就不会在那里。

- (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;

我非常感谢能够做到这一点的任何进一步帮助。

2 个答案:

答案 0 :(得分:0)

在上传后将图像保存到用户后,可以通过[User objectForKey:@“ProfilePicture”]将其作为PFFile访问; 然后,您可以使用PFFile loadInBackground函数之一在图像视图上设置图像。

我发现代码中的其他地方也存在问题,每次保存图像的用户都是新的PFUser。替换[PFObject objectWithClassName:@“User”];使用[PFUser currentUser];

答案 1 :(得分:0)

您可以将选择的图像保存到磁盘,也可以在每次" viewDidLoad"在你的控制器中。

使用[_imageView.image writeToFile:myFilePath atomically:YES];将图像保存到磁盘可以节省您的网络请求,但如果用户可以使用应用以外的方法更改图片,则可能不是最佳选择。

关于每次请求图像,你可以做一个" fetch"在[PFUser currentUser]上。完成提取后,您可以从PFFile *file获取[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    
  }
}];

关于我能用你给我的信息解释它的最好方法!