Tag: icloud

iCloud:我可以忽略那些禁用iCloud的人吗?

我正在为iCloud的想法苦苦挣扎,并在这里发布了一个更一般的问题。 我最大的问题是决定是否应该停止将用户的数据放在应用程序沙箱中的旧文档文件夹中。 为了说明我的问题: 据我所知, 文件没有给出答案。 假设我有一个处理不同txt文件的应用程序。 一旦我开始我的应用程序,我只是检查是否有任何txt文件在云中是这样的: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"AppDelegate: app did finish launching"); self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; // (1) iCloud: init NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; if (ubiq) { NSLog(@"User has iCloud enabled! Let's get the txt files from the […]

URLForUbiquityContainerIdentifier是否应该在主线程之外的线程中调用?

我读了很多有关URLForUbiquityContainerIdentifier:是否应该在主线程之外调用的冲突信息。 在很多苹果的文档中,他们总是把这种方法称为主线程。 不过,我也读过,调用这个方法可能会阻塞相当长的一段时间。 大家的想法是什么? 在主线程中调用它,不用担心或是,总是在另一个线程中调用这个调用?

如何在只使用NSUbiquitousKeyValueStore时编程检测用户设备上是否启用了iCloud?

我正在使用NSUbiquitousKeyValueStore将一些偏好数据同步到iCloud。 我发现如果用户在“设置应用程序”中禁用了iCloud的“文档&数据”项, NSUbiquitousKeyValueStore就无法将其数据同步到iCloud。 所以,我想先检查一下,如果这个设置是打开的。search结果后,我发现这个代码片段: NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; NSLog(@"url=%@",ubiq); if (!ubiq) { UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:@"Please enable iCloud in Setting app" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [av show]; return; } 我想知道的是,这是否是检测的唯一方法,即使我只是使用NSUbiquitousKeyValueStore (而不是iCloud文档存储)。 有更好的select吗?

即使configuration正确,URLForUbiquityContainerIdentifier也会返回nil

我有这个问题,URLForUbiquityContainerIdentifier在某些情况下返回零,即使用户已经设置正确的一切。 我的代码: dispatch_async(someQueue, ^{ if (![[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]) { ErrLog(@"iCloud container not available."); return; } dispatch_async(dispatch_get_main_queue(), ^{ […] }); }); 有人遇到同样的问题吗? 我将这个容器标识设置为零,这个标识应该按照苹果的文档工作,但是我不再那么确信。 此外,这个代码适用于大多数用户,但不知何故不适合每个人。

如何在非基于文档的应用程序上集成iCloud?

我已经阅读了苹果文档和Ray Wenderlich的教程。 看来我不得不使用UIDocument,所以我在文档中阅读它。 我发现使用基于文档的方法是有效的。 我的问题是我不想被绑定在特定于平台(iOS)的技术,因此我的应用程序有自己的模型,从头开始只从NSObjectinheritance。 这包括保存/加载。 现在,我需要将iCloud与我的旧模型一起整合。 我将如何以一种优雅/有效的方式来实现我的旧模式实施,并能够整合iCloud?

iCloud文档不可见

我正在尝试使用iCloud Documents来存储iOS应用程序中的XML文件。 一切似乎工作正常(我可以写入和阅读文件没有错误),除了我的应用程序的文件不会显示在icloud.com icloud文件,也不在我的developer.icloud.com,也不在我的Windows PC在iCloud Drive文件夹。 我正在模拟器中运行应用程序,并使用TestFlight在真实设备上进行testing。 我已经安装了Windows 4.0的最新版本的iCloud。 该应用程序是在Xcode 6中创build的。 有谁知道如何使文件出现在iCloud文件? 我用来保存文件的代码: NSLog(@"Syncing with iCloud"); NSURL *ubiq = [filemgr URLForUbiquityContainerIdentifier:nil]; if (ubiq) { NSURL *ubiquitousPackage = [ubiq URLByAppendingPathComponent:@"Documents" isDirectory:YES]; if ([filemgr fileExistsAtPath:[ubiquitousPackage path]] == NO) [filemgr createDirectoryAtURL:ubiquitousPackage withIntermediateDirectories:YES attributes:nil error:nil]; ubiquitousPackage = [ubiquitousPackage URLByAppendingPathComponent:@"data.pxa"]; DataFile *file = [[DataFile alloc] initWithFileURL:ubiquitousPackage]; file.xmlContent = doc.XMLString; [file […]

iCloud集成上传和下载文件

我想devise一个应用程序,在iCloud上存储文件。 但是在实际执行之前还有一些问题有答案。 问题如下, 什么是最大的文件大小上传在iCloud上? 我可以以编程方式计算/了解用户的iCloud帐户上的可用空间吗? 我怎样才能获得从iCloud上传和下载文件的事件? 任何人都可以帮我吗? 我读了苹果文档,但没有完全理解所有的东西。 提前致谢。

pipe理核心数据iCloud事务日志

我正在使用iCloud和Core Data,基于Apple指定的SQLite“Library-style”应用程序devise。 虽然基本function运行得很好,但是我担心事务日志以及它们的pipe理方式。 虽然我的应用程序的数据库不是很大,但它是非常活跃的,核心数据堆栈在应用程序正在使用时被保存很多次。 我注意到, 每个核心数据保存都会创build一个新的事务日志。 最终的结果是我有一个TON的事务日志,他们占用比实际的数据库更多的空间。 1)事务日志是否被自动修剪/合并,还是会继续无限增长,最终以千位计数,并占用数兆字节? 似乎手动清除事务日志和重新创build.baseline归档文件的唯一方法是禁用然后重新启用iCloud(删除无处不在的容器并重新启动)。 但是,这显然不是一个好的解决scheme。 2)我目前的架构经常保存核心数据栈,即使是微小的变化。 一般来说,这是有道理的,因为我的数据库是小的,保存经常确保数据库文件始终是最新的。 但是,考虑到上述与事务日志有关的问题,我想我应该尽量减less对数据库的保存。 也许在定时和/或应用程序转换状态下这样做。 3)即使我通过减less保存数据库的频率来最小化事务日志的数量,这里似乎也存在一个问题,因为日志会随着时间的推移而继续增长。 最终,“事务日志”devise的好处将成为所使用的iCloud存储量的一个负担,并添加了作为新设备的初始iCloud同步。 由于苹果已经提供了关于iCloud的非常稀less的信息,而且几乎没有任何“最佳实践”的forms,所以我希望能够从社区获得任何见解。

CloudKit – 没有服务器端的逻辑?

使用CloudKit ,您可以专注于您的客户端应用程序开发,并让iCloud 消除编写服务器端应用程序逻辑的需要 。 CloudKit为您提供身份validation,私有和公共数据库,结构化和资产存储服务 – 所有这些服务都是免费的,且具有很高的限制。 你不能上传任何代码在苹果的服务器上运行? 我听说它与Google App Engine和其他云计算平台相比,但没有运行自己的代码的能力,是不是有限的,没有真正的可比性? 例如,如果我想构build一个新闻应用程序,该应用程序会定期向用户感兴趣的主题推送故事,那么只能使用CloudKit,因为我需要在服务器上进行预定作业和数据处理。 有什么想法吗?

MPMediaItem和iTunes匹配

我有一个使用iPod Library API访问iOS中的歌曲数据库的应用程序。 随着iTunes Match的发布,任何不在设备上的歌曲都将无法加载。 有没有办法让我下载歌曲的请求? 也许使用新的iCloud API? 编辑:要清楚我不问如何使用iPhone下载iTunes Match的歌曲。 iOS SDK允许通过MPMediaQuery / MPMediaItems访问iPod库。 在具有iTunes Matchfunction的iOS设备上,通过MPMediaQuery返回在您的iTunes匹配库中但不在设备上的本地歌曲,但MPMediaItems的“可导出”标志设置为false。 当我在音乐应用程序中访问这些歌曲时,它们会自动下载。 我想通过MPMediaItem触发相同的自动下载。 我已经看到iTunes Match中的项目被评为iCloud的一部分,iOS 5 SDK中有一个新的iCloud部分。 但据我所知,我只能得到数据我的应用程序上传。 我希望通过MPMediaItem或通过iCloud使用URL触发iTunes Match下载。