感谢@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;
我非常感谢能够做到这一点的任何进一步帮助。
答案 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
}
}];
关于我能用你给我的信息解释它的最好方法!