Tag: 同步

使用iCloud在多个设备上同步核心数据

最近有很多讨论关于iCloud和Core Data的问题,以及苹果公司的API如何在iOS 5和iOS 6中破碎。 鉴于目前苹果的Core Data API的状态,是否有可能使用iCloud在多个设备间可靠地进行同步? 如果是这样,你会怎么做? 如果不是,请推荐一种替代方法。

有关iCloud +核心数据的问题

我有一个应用程序商店,使用coredata作为存储。 我不想用iCloud同步作为新function来更新应用程序。 遵循苹果的示例代码,我设法让我的核心数据存储在设备之间同步。 但是,当某个设备上的应用程序中的任一iCloud同步处于closures/打开状态时,或者该应用程序已从设备中删除并重新安装时,我遇到了问题。 在这两种情况下,数据都不会被同步回设备,尽pipe第二个设备(没有被禁用/重新安装)可以正常使用。 我还发现,当我从所有设备上删除应用程序,然后重新安装时,所有存储都被完全清除。 通过我在控制台中得到了一些合并通知(甚至有些没有错误),我看不到在设备的本地存储没有数据。 浏览我的Mac上的移动文档文件夹,仍然会在我的应用程序的icloud存储中显示大量的事务日志。 即使从所有设备删除应用程序,并从头开始不会解决。 数据只能被同步到一个设备,或者根本不同步。 我想知道是否有什么我可以做的关于这种不一致的状态,创build时,只有一个设备是临时iCloud禁用,或从一个设备删除应用程序? 至于我的代码,它是来自苹果的收件人示例的1:1副本。

NSMutableArray集合和@Synchronized块

在Objective C中,我使用来自各种线程的NSMutableArray实例,并使用@synchronized使其线程安全。 目前我对这个数组的所有访问都被一个@synchronized块,甚至objectAtIndex:方法保护着。 不过,我想知道哪些方法真的需要用@synchronized来保护。 我需要保护读取权限吗? 如果'ObjectAtIndex'没有被保护,并且与'removeObject'同时被调用,会发生什么? 如果所有的方法都受@synchronized保护,性能怎么样? (我写一个tcp / udp游戏服务器,真的不想过度保护这些数组,如果它会减less性能或产生锁)。 例如,我想'containsObject:'方法将枚举find该对象,我应该避免在另一个线程中的'removeObject:'contifnt调用。 也许一个好的解决办法是有太多不同的锁(读写访问)… 帮助和build议,欢迎! 非常感谢。 请在下面find示例代码来说明: @interface TestClass : NSObject { NSMutableArray * array; } @end @implementation TestClass – (id)init { self = [super init]; if (self) { array = [NSMutableArray array]; } return self; } -(id)objectAtIndex:(NSUInteger)index { @synchronized(array) **// IS IT USEFUL OR NOT ??** […]

为什么我们在@synchronized块中传递self?

我猜@synchronized块不是对象依赖,但线程依赖…对吗? 那么为什么我们要过自我?

WatchKit核心数据同步了

我有一个应用程序结构如下 iOS应用程序将数据写入具有存储在共享应用程序组中的持久性存储的核心数据。 Watch Kit扩展程序能够从iOS应用程序编写的Core Data中读取数据。 我遇到的问题是如果我的iOS应用程序写数据,而我的手表套件应用程序打开我没有得到更新,因为对象上下文不与磁盘上的数据同步。 有没有办法,因为我的手表套件扩展只读数据,能够刷新上下文,并迫使它再次从磁盘上的数据加载?

核心数据与WatchKit和iOS应用程序

这个问题已经被问到,但没有收到答案 。 我的iOS应用程序和我的WatchKit扩展共享一个核心数据存储保持的应用程序组。 核心数据模型(简化)是一个Person对象,具有Age的属性。 应用程序和扩展程序都可以随意更改年龄。 如果某人的价值在手表上发生了变化,那么除非我closures并重新运行该应用程序,否则该应用程序不会反映该值。 同样走向相反的方向。 如果我尝试将手表的年龄更改为20岁,并将手机的年龄更改为30岁,那么我会遇到与合并冲突有关的错误,因为我没有使用最新版本的在其中一个设备上的NSManagedObject(无论我最后更改年龄)。 我怎样才能使这两个工作在一起没有任何问题?

iCloud + Core Data的替代品可以在iOS和OS X之间同步数据

我正在开发iOS / OS X的应用程序,我想在它们之间同步数据。 现在我使用核心数据持久性数据。 我读到iCloud与核心数据使用不够成熟。 真的吗 ? 所以我尝试使用新的DropBox同步API(同步SQLite文件),但没有支持OS X. parsingSDK是一个好主意吗? (这也将允许我添加Android支持) 如果不是,有其他的解决办法吗? 谢谢。

Swift与Web服务器的核心数据同步

我正在制作一个应用程序(在Swift中),需要在离线和在线模式下运行。 当处于离线模式时,数据将被本地存储在CoreData上。 一旦检测到networking(在线),它应该与服务器同步并更新后端数据库。 应该怎么办呢。 有图书馆或豆荚吗? 我已经看到这个post,但没有什么是可操作的。 这是太高的水平,我不知道从哪里开始。 我已经看到了Ray Wenderlich的这个链接,但不知道如何翻译成Swift。 任何教程链接也将是有帮助的

基于REST的客户端 – 服务器同步

这个问题是关于我认为是在Android / iOS开发中的一个非常普遍的问题,但我还没有find任何“标准”的解决scheme。 假设我们有一个相当普通的REST API。 服务器数据库包含(除其他之外)具有1:N关系的表格countries和towns 。 客户端(移动应用程序)想要维护这两个表的本地快照。 因此,当它处于脱机状态时,它可以执行通常通过REST执行的查询,例如:“获取人口> = 100的奥地利城镇名单”? 如何解决这个问题? 第一个问题:一致性。 客户端应该有两张表的快照。 如果客户端下载towns表的更新并下线,某个城镇可能会引用一个不在countries表的本地副本中的countries 。 第二个问题:客户端应该只下载新的/删除/更改的行。 get_updates_since(…) REST并使用一些自定义RPC调用,比如get_updates_since(…) ? 第三个问题:如何将客户端的数据库副本(可能离线)的本地更改与服务器同步? 自定义RPC调用?

设置AVSynchonizedLayer

我一直在试图产生一个将video与animation对象连接起来的概念certificate(本质上,我将用户选定的位图“旋转”到特定位置的video上)。 看完有关Core Animation(WWDC10等)和AVSync..Layer(Apple WWDC10示例代码,doc示例代码)的所有可用Apple材料后,根本没有足够清晰的代码示例来推导如何实现播放模式正确。 使用CA,我有一个video资产被加载到一个CALayer,并附加到位图,然后连接到另一个CALayer的animation。 我创build了一个AVSynchronizedLayer并添加了两个对象作为子图层。 当这个树被添加到UIView的图层属性,我期待的animation播放与video同步运行。 相反,我只看到播放的video,animation从不执行 – 这里是我的代码的相关部分,它们都在一个View Controller中(在ViewDidLoad中调用)。 Video101.m4v =简单的m4vvideo,gerald.png =位图 NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"Video101" withExtension:@"m4v"]; AVURLAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil]; AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset]; AVPlayer *player = [[AVPlayer playerWithPlayerItem:playerItem]retain]; AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; playerLayer.frame = CGRectMake(0, 0, 1024, 768); playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; CALayer *gerald = [CALayer […]