0

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

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

4

1 回答 1

2

不,没有任何 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 具有本地缓存​​ - 每次备份时都会复制您的存储空间,因此应用程序的大小会随着经常备份而急剧增加。

于 2013-10-11T22:02:40.833 回答