gpt4 book ai didi

objective-c - Simperium - 文件上传但不在设备之间同步

转载 作者:行者123 更新时间:2023-11-28 22:42:38 25 4
gpt4 key购买 nike

今天我在寻找 iCloud 同步我的核心数据数据库的替代方案时偶然发现了 Simperium。

它的速度和通过数据浏览器传输数据的可见性给我留下了深刻的印象,据我所知,iCloud 无法轻松提供这一点。我遵循了 simpleToDo 示例应用程序并设法使其正常运行(该应用程序的 ipad 版本有一些需要修复的错误)。

在对它的工作方式感到满意之后,我决定按照与示例中相同的步骤在我的应用程序中实现它。我删除了所有与 icloud 相关的代码,并通过虚拟镜像示例中提供的代码(仅对我的托管对象模型进行了轻微改动)重新实现了应用程序委托(delegate)核心数据代码。

在我的应用程序中创建记录似乎一切顺利,我可以看到更改已通过网站的仪表板数据浏览器工具上传。

我的问题

我已验证数据正在从两台设备发送到服务器,但是,这些更改都没有显示在另一台设备上。

我错过了什么?我在 simpleToDo 示例的代码中找不到任何似乎表明在收到某种通知后可以调用该方法来执行 TableView 更新或刷新的方法。

此外,我看不到任何日志显示已检测到/添加到队列或下载了新记录。

我与 Simperium 相关的最后日志是:

2012-12-30 21:00:46:772 myClients[745:907] Simperium authentication success!
2012-12-30 21:00:46.781 myClients[745:907] Reachability Flag Status: -R ------- networkStatusForFlags
2012-12-30 21:00:46:782 myClients[745:907] Simperium starting network managers...
2012-12-30 21:00:49:514 myClients[745:907] Simperium finished processing index for Client

非常感谢任何帮助,我真的很期待看到它对我有用,因为我相信这将是一个很好的选择。

最佳答案

您可以在您的 Simperium 实例上启用更详细的日志记录:

simperium.verboseLoggingEnabled = YES;

这将帮助您确认每台设备都在接收数据。正如您已经发现的那样,您应用的基于 Web 的数据浏览器可以帮助您确认数据是否已发送。

除此之外,您提到的示例使用了 NSFetchedResultsController,它是一个本地类,可以在 Core Data 中添加、删除和更改项目时自动更新 UITableView。如果您以这种方式构建您的应用程序,则无需执行任何其他操作即可更新您的表格 View 。

如果您需要更完整的控制,或者您有想要手动更新的 UI 元素,您可以使用 SPBucketDelegate 在数据更改时收到通知。您的每个实体都有一个存储桶,您可以从您的 Simperium 实例中检索该存储桶。然后您可以在该存储桶上设置 SPBucketDelegate:

SPBucket *bucket = [simperium bucketForName:@"Todo"];
bucket.delegate = self;

self 实例现在将具有类似 bucket:didChangeObjectForKey:forChangeType: 的方法,当任何作为 Todo 实体的对象发生变化时调用。您可以在 SPBucket.h 中查看这些委托(delegate)方法的完整列表。

关于objective-c - Simperium - 文件上传但不在设备之间同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14090002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com