在一个 PFFile 中获取两个数据

Posted

技术标签:

【中文标题】在一个 PFFile 中获取两个数据【英文标题】:Get two Data in one PFFile 【发布时间】:2014-09-16 18:41:33 【问题描述】:

我想在一个 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】:

您不能(轻松)将两个文件放入一个 PFFFile。 PFFFile 旨在代表一个文件。

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

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

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

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

【讨论】:

以上是关于在一个 PFFile 中获取两个数据的主要内容,如果未能解决你的问题,请参考以下文章

ParseServer PFFile 扭曲链接

从 Parse 获取 PFFile 时数组超出索引

PFFile 作为 UIImageView

如何快速将 PFFile 转换为 UIImage?

PFFile 返回 nil 可选值 - Swift 1.2

为快速开发的 ios 应用程序检索存储为 PFFile 的视频文件