我正在编写一个允许用户在Parse上获取和存储图像的应用程序.到目前为止,我已经设法通过使用以下逻辑将图像数组保存到Parse: 拍摄影像 将对象添加到数组 将数组转换为NSData 将NSDat
>拍摄影像
>将对象添加到数组
>将数组转换为NSData
>将NSData转换为PFFile
>设置文件上传目的地(通过唯一的objectId)
>将PFFile上传到Parse
这就是代码的样子;请原谅,它现在在dismissViewController中,我只是想让它成功保存:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { _takenImage = (UIImage *) [info objectForKey:UIImagePickerControllerOriginalImage]; [self dismissViewControllerAnimated:YES completion:^ { // Add object to array: Working [_tankImagesArray addObject:_takenImage]; NSLog(@"Number of images taken: %lu", (unsigned long)_tankImagesArray.count); // Convert array to NSData Object NSData *imageData = [NSKeyedArchiver archivedDataWithRootObject:_tankImagesArray]; // Convert NSData Object to PFFile PFFile *imageFile = [PFFile fileWithData:imageData]; PFQuery *tankQuery = [PFQuery queryWithClassName:@"SavedTanks"]; _tankObject = [tankQuery getObjectWithId:_passedValue]; [_tankObject setObject:imageFile forKey:@"tankImages"]; [_tankObject save]; }]; }
现在,我的问题是:我究竟如何检索该文件?我的最终目标是允许用户查看他们过去拍摄的图像并添加到集合中的图片列表并将其上传到服务器.我只是不确定如何在上传文件后检索文件,并确保保持完整性.
你试过了吗:PFQuery *query = [PFQuery queryWithClassName:@"SavedTanks"]; [query whereKey:@"tankImages" equalTo:@"your_image.jpg"]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { // The find succeeded. NSLog(@"Successfully retrieved %d images.", objects.count); // Do something with the found objects for (PFObject *object in objects) { NSLog(@"%@", object.objectId); } } else { // Log details of the failure NSLog(@"Error: %@ %@", error, [error userInfo]); } }];