在一个PFFile中获取两个数据

时间:2014-09-16 18:41:33

标签: ios objective-c parse-platform pffile

我想在一个PFFile中保存2个数据:一个图像和一个数据声音。 这对于图像(fileData)是正确的,但我想在Parse.com中为数据声音(fileData2)添加一列。我该怎么做?我不能这样做:" PFFile * file = [PFFile fileWithName:fileName data:fileData,fileData2];"

这是我的代码:

- (void)uploadMessage {
    NSData *fileData;
    NSData *fileData2;
    NSString *fileName;
    NSString *fileType;

    if (self.image != nil) {
        [SVProgressHUD showWithStatus:@"Sending..." maskType:SVProgressHUDMaskTypeClear];
        UIImage *newImage = [self resizeImage:self.image toWidth:320.0f andHeight:480.0f];
        fileData = UIImagePNGRepresentation(newImage);
        fileData2 = self.datasound;
        fileName = @"image.png";
        fileType = @"image";
    }

    PFFile *file = [PFFile fileWithName:fileName data:fileData];
    [file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (error) {
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An error occurred!"
                                                                message:@"Please try sending your message again."
                                                               delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [SVProgressHUD dismiss];
            [alertView show];
        }
        else {
            PFObject *message = [PFObject objectWithClassName:@"Messages"];
            [message setObject:file forKey:@"file"];
            [message setObject:fileType forKey:@"fileType"];
            [message setObject:self.recipients forKey:@"recipientIds"];
            [message setObject:[[PFUser currentUser] objectId] forKey:@"senderId"];
            [message setObject:[[PFUser currentUser] valueForKey:@"name"] forKey:@"senderName"];
            [message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
                if (error) {
                    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An error occurred!"
                                                                        message:@"Please try sending your message again."
                                                                       delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
                    [SVProgressHUD dismiss];
                    [alertView show];
                }
                else {
                    // Everything was successful!
                    [self reset];
                    [SVProgressHUD dismiss];
                }
            }];
        }
    }];
}

1 个答案:

答案 0 :(得分:1)

你不能(轻松地)将两个文件放入一个PFFFile中。 PFFFile意味着代表一个文件。

制作两个PFFile实例,一个用于图像,一个用于声音文件。

PFFile *imageFile = [PFFile fileWithName:imageFileName data:imageFileData];
PFFile *soundFile = [PFFile fileWithName:soundFileName data:soundFileData];

将PFFile的这些实例设置为相应的解析列。 E.g:

[message setObject:imageFile forKey:@"imageFile"];
[message setObject:soundFile forKey:@"soundFile];