如何将基本核心数据存储保存到 Parse.com?

Posted

技术标签:

【中文标题】如何将基本核心数据存储保存到 Parse.com?【英文标题】:How to save a basic Core Data store to Parse.com? 【发布时间】:2013-10-11 20:26:12 【问题描述】:

我查看并查看了 Parse 文档、SO 和 Google,但找不到将普通 ol'Core Data SQLite 文件存储到 Parse.com 的示例。最初我只想将 Core Data 文件存储为备份;最终我想添加 FTASync,然后让其他人能够利用这个 ios 应用程序中存储的核心数据文件。

有没有不使用 PFObject 的例子?有人可以指出我可以在 Parse 文档中找到如何执行此操作的地方吗?

【问题讨论】:

那么您是存储 SQLite 文件还是对象(针对 Parse 中定义的类)? 我都不做;我要让我的“鸭子排队”!我需要一个很好的 Parse“入门”,它描述了如何获取核心数据 d/b 并将其存储在 Parse.com 我正在使用 RestKit 和 Parse RESTful 接口。看不到 PFObject... 【参考方案1】:

不,没有任何 PFObject 就无法做到这一点。从理论上讲,您只需使用

即可保存备份
- (void)createBackupFromSQLiteStorageAtPath:(NSString*)path

    NSString *name = [[NSDate date] description]; // for example, stringified date will act as name
    PFFile *backup = [PFFile fileWithName:name contentsAtPath:path];
    [backup saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
    
        if (error)
        
            // handle
        
        else
        
            // success
        
    ];

但是!如果您想从 parse 的文件服务器访问它,您需要以某种方式保留 PFFile 对象(您也可以存储 PFFile 的 url 属性 - 但它是 hack) - 这是 PFObject 提供帮助的情况。假设您已经备份了您的商店:

- (void)storeBackupFile:(PFFile*)file

    PFObject *backup = [PFObject objectWithClassName:@"Backup"];
    [backup setObject:file forKey:@"file"];
    [backup setObject:[PFUser currentUser] forKey:@"user"];
    [backup saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
        
            if (error)
            
                [backup saveEventually];
            
            else
            
                // success
            
        ];

因此,在此之后,您将在解析数据库中拥有 Backup 对象,并带有指向备份文件和创建备份的用户的链接。 更多注意事项: 1) 把这样的备份组织成 NSOperation 子类就好了。 2) 以这种方式使用 Parse 存储备份是个坏主意。 Parse 上的文件存储是非常昂贵的资源。此外,PFFile 具有本地缓存​​ - 每次备份时都会复制您的存储空间,因此应用程序的大小会随着经常备份而显着增加。

【讨论】:

非常感谢;这正是我想要的!我在哪里可以找到有关您所描述内容的更多信息?正如我所指出的,我看了又看,无济于事。一个好的“入门”文档将不胜感激。 :D 不幸的是我不知道这种指南=(我不确定,但我认为 Parse 示例(parse.com/tutorials)都不适合您的任务。但是,我建议您考虑( parse.com/tutorials/anypic) 示例,前三个步骤 - 他们有你需要的一切:保存文件,保存 pfobject。这个简短的教程 + 解析文档 parse.com/docs/ios/api(主要课程是 PFObject,PFFile,PFQuery,@987654330 @) 将让您了解主要框架的可能性。但不要使用任何图片作为您自己项目的基础 - 它可能包含旧版本的框架! 你不需要使用PFObject。 Parse 提供了多种不同的 API(PFObject 实际上只是其 RESTful 接口的包装器)。 @Wain,更进一步,可能根本不使用PFFile - 并通过HTTP实现上传/下载(老实说它比PFFilesave/@987654334更快) @)。但是,如果任务不需要网络性能优化(我相信备份实际上并不需要它),最好使用现成的、经过测试的和供应商提供的解决方案,如 PFFilePFObject,而不是发明自己的自行车.另一个问题是文件存储...... Parse 对数据库来说很酷,并且文件存储非常昂贵。 Amazon S3 在备份方面要好得多……但这离题了

以上是关于如何将基本核心数据存储保存到 Parse.com?的主要内容,如果未能解决你的问题,请参考以下文章

将 mogenerator 与 Core Data 实体一起使用会导致保存数据存储时出错

iOS-Parse.com 将多个设备与本地数据存储同步

将位图列表保存到 Parse.com |安卓 |

ParseObject.saveInBackground 方法以 java.net.SocketTimeoutException 结尾:将数据保存到 Parse.com 时为 null

同步保存到 parse.com 时的进度条

Swift - 如何将输入数据保存到核心数据中?