在forApp购买的Parse上存储数据

时间:2015-02-19 11:20:29

标签: ios parse-platform in-app-purchase

在iOS应用中,我试图以新的(对我来说)方式使用Parse.com。我想存储一次购买inApp后将要提供给用户的数据。


我已经达到了这一点,我可以在服务器上放一个虚拟文件,并在购买完成后将其放入我的应用程序中。但是我的问题出现了: 我应该在Parse.com上传什么样的文件?通过反复试验,我注意到一个简单的文本(.txt)文件不起作用,另一方面.png或.zip似乎是工作扩展。内容似乎无关紧要。我还读过它必须是一个文件。因此,如果我希望我的用户获得一些文本和一些声音和图片,我显然必须将其打包到一个文件中并在下载后将其解压缩。我应该放一个.zip文件或其他压缩格式吗?然后如何在下载后解压缩?例如,假设我希望用户获得:


  • 3个文本文件:A.txt,B.txt,C.xml

  • 2个声音文件:S1.mp3,S2.mp3

  • 3个图形文件:Gr1.png,Gr2.png,Gr3.jpeg

我怎么去?我们欢迎一些示例代码或教程指示。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

根据文档,只要文件不超过10MB,您就可以保存任何二进制数据。

"最常见的用例是存储图像,但您也可以将其用于文档,视频,音乐和任何其他二进制数据(最多10兆字节)。"

以下是上传三个文本文件的示例。为简单起见,我有一个名为TestClass的类,其类型为File,名为File1,File2和File3。

对于每个文件,我们将使用saveInBackgroundWithBlock方法,因此我们知道文件何时成功保存,我们可以将它与正确的TestClass列相关联。

PFObject *testClass = [PFObject objectWithClassName:@"TestClass"];

NSData *data = [@"This is the first text file!" dataUsingEncoding:NSUTF8StringEncoding];
PFFile *file = [PFFile fileWithName:@"file1.txt" data:data];

[file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (succeeded) {
        testClass[@"File1"] = file;
        [testClass saveInBackground];        
    }
}];

data = [@"This is the second text file!" dataUsingEncoding:NSUTF8StringEncoding];
file = [PFFile fileWithName:@"file2.txt" data:data];

[file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (succeeded) {
        testClass[@"File2"] = file;
        [testClass saveInBackground];        
    }
}];

data = [@"This is the third text file!" dataUsingEncoding:NSUTF8StringEncoding];
file = [PFFile fileWithName:@"file3.txt" data:data];

[file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (succeeded) {
        testClass[@"File3"] = file;
        [testClass saveInBackground];        
    }
}];