Ios 使用Parse替换核心数据

Ios 使用Parse替换核心数据,ios,swift,core-data,parse-platform,Ios,Swift,Core Data,Parse Platform,我刚刚发现了,它看起来像一个处理在线/离线同步的SQL数据库 我正在为一个客户编写一个应用程序,该客户需要类似于contacts应用程序的东西。联系人可以脱机添加/编辑,也可以添加到其他设备上,它们都需要正确同步,而不是创建重复的实体 使用解析本地数据存储是可行的选择吗 我在应用程序中执行此操作。代理使用选项方法完成启动: query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -

我刚刚发现了,它看起来像一个处理在线/离线同步的SQL数据库

我正在为一个客户编写一个应用程序,该客户需要类似于contacts应用程序的东西。联系人可以脱机添加/编辑,也可以添加到其他设备上,它们都需要正确同步,而不是创建重复的实体

使用解析本地数据存储是可行的选择吗

我在应用程序中执行此操作。代理使用选项方法完成启动:

query.findObjectsInBackgroundWithBlock {
    (objects: [AnyObject]?, error: NSError?) -> Void in
    if error == nil {
        if let objects = objects as? [PFObject] {
            PFObject.pinAllInBackground(objects, block: nil)
        }
    } else {
        println("Error: \(error!) \(error!.userInfo!)")
    }
}
然后在初始视图控制器中执行以下操作:

query.findObjectsInBackgroundWithBlock {
    (objects: [AnyObject]?, error: NSError?) -> Void in
    if error == nil {
        if let objects = objects as? [PFObject] {
            self.athleteArray = objects
            self.tableView.reloadData()
        }
    } else {
        println("Error: \(error!) \(error!.userInfo!)")
    }
}
但是,我假设因为应用程序委托查询在后台运行,所以当视图控制器运行时,数据存储没有接收对象,因为tableview显示为空

当我稍后再次启动应用程序时,对象就在那里,因为数据存储已经填充


如何使用Parse的本地数据存储管理同步对象(实时,无需第二次启动应用程序)?我做得不对吗?

解析和核心数据解决了不同的问题。Parse是一个云数据存储,包含一系列有用的辅助服务。核心数据是一个Objective-C对象图持久化系统。首先要问自己的是:

1) 每个解析查询都可能会花费开发人员的钱、用户的带宽和延迟。这些费用值得付出代价吗

2) 根据我的经验,Parse的本地数据存储不如我所希望的那么可靠。它可能足以满足您的需要。只有你知道?我选择在我最新的应用程序中同时使用核心数据和解析

3) 同步数据很困难。解析,通过成为“云中的真相”,可能使这更容易。但不是通过本地数据存储。每个同步应用程序都需要扫描大量本地数据库,并将其与云进行比较。有办法缓解这种情况,但需要与“真相”进行比较,并处理合并冲突

4) Parse的本地数据存储不是一个共享资源,正如您所相信的那样。本地数据存储位于每个应用程序的沙箱中,并且是隔离的。Parse正在做一些事情来允许共享Watch扩展,这可能会在watchosv2中被打开。但我不会指望它,直到它

最后一点非常重要。Parse的核心是一家网络技术公司。他们相信技术的快速转变。如果他们现在还不能很好地工作,他们很快就会。作为一名开发人员,这意味着在他们反复发布几次新技术之前,你不应该跳上他们的新技术


我发现Parse的成功之路在于当你开始你的项目时,使用它们来完成它们擅长的事情。目前还不清楚它们是否会以你需要的速度发展,以达到你的目标,而且它们也没有动力改变新应用的速度。

解析和核心数据解决不同的问题。Parse是一个云数据存储,包含一系列有用的辅助服务。核心数据是一个Objective-C对象图持久化系统。首先要问自己的是:

1) 每个解析查询都可能会花费开发人员的钱、用户的带宽和延迟。这些费用值得付出代价吗

2) 根据我的经验,Parse的本地数据存储不如我所希望的那么可靠。它可能足以满足您的需要。只有你知道?我选择在我最新的应用程序中同时使用核心数据和解析

3) 同步数据很困难。解析,通过成为“云中的真相”,可能使这更容易。但不是通过本地数据存储。每个同步应用程序都需要扫描大量本地数据库,并将其与云进行比较。有办法缓解这种情况,但需要与“真相”进行比较,并处理合并冲突

4) Parse的本地数据存储不是一个共享资源,正如您所相信的那样。本地数据存储位于每个应用程序的沙箱中,并且是隔离的。Parse正在做一些事情来允许共享Watch扩展,这可能会在watchosv2中被打开。但我不会指望它,直到它

最后一点非常重要。Parse的核心是一家网络技术公司。他们相信技术的快速转变。如果他们现在还不能很好地工作,他们很快就会。作为一名开发人员,这意味着在他们反复发布几次新技术之前,你不应该跳上他们的新技术


我发现Parse的成功之路在于当你开始你的项目时,使用它们来完成它们擅长的事情。目前还不清楚它们是否会以你需要的速度发展,以达到你的目标,而且它们也没有动力改变新应用的速度。

解析和核心数据解决不同的问题。Parse是一个云数据存储,包含一系列有用的辅助服务。核心数据是一个Objective-C对象图持久化系统。首先要问自己的是:

1) 每个解析查询都可能会花费开发人员的钱、用户的带宽和延迟。这些费用值得付出代价吗

2) 根据我的经验,Parse的本地数据存储不如我所希望的那么可靠。它可能足以满足您的需要。只有你知道?我选择在我最新的应用程序中同时使用核心数据和解析

3) 同步数据很困难。解析,通过成为“云中的真相”,可能使这更容易。但不是通过本地数据存储。每个同步应用程序都需要扫描大量本地数据库,并将其与云进行比较。有办法缓解这种情况,但需要与“真相”进行比较,并处理合并冲突

4) Parse的本地数据存储不是一个共享资源,正如您所相信的那样。本地数据存储位于每个应用程序的沙箱中,并且是隔离的。Parse正在做一些事情来允许共享Watch扩展,这可能会在watchosv2中被打开。但我不会指望它,直到它

最后一点很不重要