Questions tagged «icloud»

2
使用Core Data,iCloud和CloudKit进行同步和备份以及它们如何协同工作
我正处于创建应用程序的早期阶段,我想在其中保存,同步和备份数据。该应用程序不会在数据库中仅存储数据的任何文件。它将是iOS 8及更高版本,因此我可以使用CloudKit。我做了一些研究,但仍不清楚Core Data,iCloud和CloudKit如何协同工作。 据了解,CloudKit只是从云中获取数据或从云中获取数据的一种方法。CloudKit只是与iCloud同步数据的另一种方式吗? 我的问题是: 如果确实使用CloudKit,是否还需要创建本地核心数据数据库? 如果是,它将自动与iCloud同步,还是我必须调用方法存储到两个地方? 如果数据仅存储在云中,则当iOS设备未连接到互联网时,用户将能够访问它。我读到CloudKit只有有限的缓存。 如果未启用iCloud帐户,该如何工作。 如果有人可以分解每种技术在离线和在线保存和同步核心数据数据库的过程中的作用。 我目前的理解是: 核心数据用于在本地存储数据 iCloud同步数据并存储在云中 CloudKit使您能够在云中存储和管理数据? 我希望我提供了足够的信息来解决这个问题。

5
iCloud基础知识和代码示例
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 作为一个初学者,我正在为iCloud奋斗。有一些示例,但是它们通常都非常详细(在开发人员论坛上,有一个针对iCloud和CoreData的示例非常庞大)。在苹果的文档都OK,但我仍然无法看到大局。因此,请允许我,其中一些问题是非常基本的,但可能很容易回答。 上下文:我有一个非常简单的iCloud应用程序正在运行(下面是完整的示例代码)。仅向用户显示一个UITextView,并且他/她的输入保存在一个名为text.txt的文件中。 txt文件被推送到云中,并可供所有设备使用。完美运行,但是: 主要问题:不使用iCloud的用户呢? 启动应用程序时(请参见下面的代码),我会检查用户是否启用了iCloud。如果启用了iCloud,则一切正常。该应用程序继续运行,并在云中查找text.txt。如果找到,它将加载它并显示给用户。如果在云中找不到text.txt,它将仅创建一个新的text.txt并将其显示给用户。 如果用户未启用iCloud,则不会发生任何事情。如何使非iCloud用户仍然可以使用我的文本应用程序?还是我只是忽略它们?我是否需要为非iCloud用户编写单独的功能?即我仅从documents文件夹中加载text.txt的函数? 苹果写道: 以与对待应用程序沙箱中所有其他文件相同的方式对待iCloud中的文件。 但是,就我而言,再也没有“普通”应用程序沙箱了。在云中。还是我总是先从磁盘上加载text.txt,然后与iCloud检查是否还有最新信息? 相关问题:文件结构-沙箱与云 也许我的主要问题是对iCloud应该如何工作的根本误解。创建UIDocument的新实例时,我将不得不覆盖两个方法。首先- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError从云-(id)contentsForType:(NSString *)typeName error:(NSError **)outError中获取文件,然后将文件添加到云中。 我是否必须合并单独的功能,这些功能也会将text.txt的本地副本保存到我的沙箱中?这对非iCloud用户有效吗?据我了解,iCloud会自动保存text.txt的本地副本。因此,我不需要将任何内容保存到应用程序的“旧”沙箱中(即,它曾经在iCloud之前的旧年代使用)。目前,我的沙箱完全是空的,但我不知道这是否正确。我是否应该在其中保留另一个text.txt副本?感觉就像混乱的数据结构...因为云中有一个text.txt,设备上的iCloud沙箱中有一个text.txt(即使我离线也可以使用),而旧的沙箱中的第三个则是。我的应用程式... 我的代码:一个简单的iCloud示例代码 这大致基于我在开发人员论坛和WWDC会话视频中找到的示例。我将其剥离到最低限度。我不确定我的MVC结构是否良好。该模型位于AppDelegate中,并不理想。欢迎提出任何改善建议。 编辑:我试图提取主要问题并将其发布[此处]。4 概述: 最重要的一点是从云中加载text.txt: // AppDelegate.h // iCloudText #import <UIKit/UIKit.h> @class ViewController; @class MyTextDocument; @interface AppDelegate : UIResponder <UIApplicationDelegate> { NSMetadataQuery *_query; } @property (strong, nonatomic) UIWindow …

1
CoreData + iCloud +级联删除-如何处理?
CoreDataCoreData使用级联删除规则,实体“ A”与条目“ B”的集合具有一对多关系。 在iCloud环境中,虽然设备1显示了“ B”条目之一的详细视图,但设备2删除了“ A”条目。 NSPersistentStoreDidImportUbiquitousContentChangesNotification在设备1中接收到通知时,其App委托将进行调用mergeChangesFromContextDidSaveNotification,然后广播一个内部通知,该内部通知将由视图控制器捕获,其中显示条目“ B”的详细信息(代码performBlock在应使用的位置使用)。 但是,尽管当详细视图控制器接收到内部通知时,条目“ A”的确为空,但是条目“ B”仍然作为有效CoreData对象存在。级联规则似乎尚未完成其操作。因此,设备1中的视图控制器不知道删除操作,这可能导致意外结果。 mergeChangesFromContextDidSaveNotification 基本数据已合并但Cascade规则尚未完成时,似乎会过早返回。 我试图在通知到达时刷新条目“ B”,同时stalenessInterval将托管对象上下文的临时设置为零,这样就不会使用缓存的对象,但是我仍然从存储中获得有效的条目“ B”。 null此时不选择检查条目“ A”,因为情况比我在此描述的要复杂得多,在某些情况下,空条目“ A”可能是有效的。 我试图在合并更改之后并在将内部通知发送给视图控制器之前引入延迟。我发现2秒钟的延迟无济于事,但10秒钟的延迟有效。 但我不想依靠这种延迟。这是一个没有大量数据的测试环境,我不知道在生产环境中会发生什么。依靠实验性的延迟似乎不是正确的事情。 有没有对的事?还是我开始做错了什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.