问题标签 [nsubiquitouskeyvaluestore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
icloud - 在云端调试 iCloud 键值数据
我一直在努力想弄清楚如何确定给定应用程序的键值存储中的实际内容。使用 api 检测数据对我来说似乎很可疑,因为我害怕得到误报。此外,我不得不猜测可能还有什么(即来自应用程序的早期版本或其他版本)。据我所知,开发者测试网站只显示云中的文件,而不是键值存储。有谁知道如何访问这些数据,或者本地 .plist 文件存储在文件系统的哪个位置(我假设它无论如何都在 .plist 中)?
cocoa-touch - iCloud 键值同步 - 首次发布
我正在使用 iCloud 在设备之间存储同步用户首选项。在设备上,这些存储在 'Favorite Teams' 数组中NSUserDefaults
,我正在使用MKiCloudSync将它们镜像到NSUbiquitousKeyValueStore
. 一台设备上的更改正在传播到第二台设备。
但我不确定如何防止在新安装后首次启动时擦除云数据。这是正在发生的事情:
- 设备 A 首次启动。应用程序在云中找不到任何东西。用户将多个项目添加到 NSUserDefaults 中的数组中。更改会立即同步到云端。
- 设备 B 首次启动,但处于离线状态。用户将单个项目添加到
NSUserDefaults
数组中,然后记住应用程序支持 iCloud,因此找到了一些 wifi。 - 设备 B 将其默认版本推送到云端(只有一项)。设备 A 将其拉出,有效地消灭了设备 A 上添加的所有团队。
这是 iCloud 的限制还是我的实现幼稚?文档解决了同步“最高级别”的类似问题,并添加了应用程序逻辑以永远不会用较小的值覆盖该值。当有一些明确的业务逻辑要遵守时,这很好(更高级别始终是要保留的),但是当数据更加随意时,我不知道如何确定要做什么。
或者是因为我在 NSUserDefaults 中为“最喜欢的团队”使用了一个数组并批发替换它?如果我为每个团队使用单独的密钥,也许它们会根据时间码独立同步?
iphone - 识别非应用 iCloud 键值数据
我正在订阅以NSUbiquitousKeyValueStoreDidChangeExternallyNotification
监视来自 iCloud 的键值更改。收到后,我会处理userinfo
包含的内容并应用我的业务逻辑。
但是,有时(尤其是在首次启动时)我收到的密钥似乎与系统相关,或者至少不是我的应用程序的一部分 -
ETC
- 如何识别此类密钥并避免尝试针对我的应用程序代码运行它们?我是否应该以某种方式“标记”我自己的数据以便识别它们?
- 我是否负责更新这些键的本地值?iCloud 发送它们一定是有原因的,但我不知道把它们放在哪里。它们在我的 NSUserDefaults 中吗?或者 iCloud 是否单独处理它们(在这种情况下,它们包含在用户信息中似乎很奇怪)?
这就是我订阅通知的方式:
ios - NSUbiquitousKeyValueStore 的内部同步是如何工作的?
对于 iOS 应用程序,我正在研究如何通过 iCloud 同步用户数据。由于数据很小,我目前考虑使用 iCloud 的键值存储(NSUbiquitousKeyValueStore
)。
我有几个关于内部工作的问题NSUbiquitousKeyValueStore
,我在文档中找不到答案:
- 在更改 (
NSUbiquitousKeyValueStoreDidChangeExternallyNotification
) 之后,我可以假设所有键值对都是最新的吗?还是可能密钥 A 是最新的,但密钥 B 尚未更新? - 如果我在商店中更新
NSArray
或更新NSDictionary
,是在同步期间上传和下载了整个内容,还是 iCloud 以某种方式仅同步数组/字典中的更改值? - 更改值的大小(例如更改
NSNumber
几个字节与更改NSArray
50KB)是否会影响 iOS 选择执行同步的时刻?
希望有经验的NSUbiquitousKeyValueStore
人能回答这些问题!
ios - iCloud:键值存储问题
有人有关于 iCloud 上键值存储的成功案例吗?我花了几个小时弄清楚为什么我的应用程序没有在使用 NSUbiquitousKeyValueStore 的设备之间同步。
我通过atm有几点:
-我正在存储从自定义对象数组存档的 NSData 对象
- 通知 NSUbiquitousKeyValueStoreDidChangeExternallyNotification 从未发布(这是主要问题)
- 当我更改帐户或从 iCloud 注销时,通知 NSUbiquityIdentityDidChangeNotification 正确发布
- 我使用 setData:forKey: 存储到 NSUbiquitousKeyValueStore 的数据在我发送 dataForKey: 消息时返回给我,但数据从未与其他设备同步
- 我已经尝试删除应用程序,删除 iCloud 帐户,重新安装应用程序,重新登录 iCloud - 没有任何帮助在设备之间同步数据
-我的设备:iOS6 上的 iPod 4 touch 和 iOS6.1.3 上的 iPhone 4
- 大量文章和教程
- 权利和规定都很好(至少我没有收到任何错误)
有任何想法吗?
ios - 用户可以手动删除 iCloud 键值存储 NSUbiquitousKeyValueStore 中的值吗
我想知道除了我(开发人员)之外的其他人是否可以删除存储在 NSUbiquitousKeyValueStore 中的值。
文档指出,应用程序被赋予 1MB/1024 键值对。它没有提及用户是否能够通过设置、删除应用程序或任何其他方式删除它们。
这是一个安全的假设吗?
ios - 为什么相同的 iCloud 帐户但获得不同的 ubiquityIdentityToken
我正在尝试实现具有iCloud Key-value
存储功能的应用程序。
目前,我正在iPhone5s
使用iOS7.0.4
iPhone4 和 iPhone4的两台设备对其进行测试,iOS6.1.1.
你们知道为什么相同的设备iCloud account
(从设置 -> iCloud -> 帐户检查)有两个不同的地方ubiquityIdentityToken
吗?我想这就是这两个设备之间数据不同步的原因(网络访问)。
而在 iOS6 上,NSUbiquitousKeyValueStoreDidChangeExternallyNotification
是不会触发的。
提前致谢!
ios - 使用同一个泛在容器的多个应用程序上的 iCloud 键值存储
我知道以前曾以类似的方式提出过此类问题,但找不到令人满意的答案。有人可以解释一下吗。在我开始我的问题之前,我想补充一点,App ID 已启用 iCloud,并且在此之后会创建/下载/安装临时配置文件。
我在这里遵循了 Apple 文档https://developer.apple.com/library/mac/documentation/General/Conceptual/iCloudDesignGuide/Chapters/iCloudFundametals.html
我有一个 MAC 应用程序和一个 iOS 应用程序。在 MAC 应用程序的功能部分中,iCloud 已打开。Ubiquity 容器包含我的 MAC 应用程序的包标识符。我检查了 .entitlement 文件,iCloud 键值存储是 TeamIdentifier.bundleidentifier。一切正常。值存储在 iCloud 中,我可以毫无问题地获取它们。
现在在我的 iOS 应用程序上。在功能部分,我打开了 iCloud,并将普遍存在的容器字符串设置为我的 MAC 应用程序的捆绑标识符。检查的 .entitlement 文件和 iCloud 键值存储字符串设置为 TeamIdentifier.bundleidentifier。当我从 iCloud 获取时,我的 iOS 应用程序的值为零。我已经在模拟器和我的 iPhone 5 上测试过,但没有运气。
任何帮助是极大的赞赏。
ios - iCloud 无法在两个应用程序之间共享数据
我正在使用 NSUbiquitousKeyValueStore 将数据从 iOS 应用程序 A 存储到 iCloud,但我无法在我的 iOS 应用程序 B 上获取任何对象。但是我可以在我的 iOS 应用程序 A 上获取对象。两个应用程序具有相同的团队 ID 和两者都具有相同的 Ubiquity 容器标识符。我通过 XCode 5 添加了 iCloud 功能,它自动创建了权利文件。我还为两个 App ID 打开了 iCloud 选项。
以下是我从 App A 设置数据的方式:
以下是我在 App B 上获取数据的方式:
我不知道这是否重要,但我在调试模式下运行这两个应用程序。我必须在启用 iCloud 的 iTunes 上创建这两个应用程序吗?
谢谢!
ios - iCloud:NSUbiquitousKeyValueStore 问题
我在我的应用程序中启用 iCloud 以保存一些首选项。iCloud 在功能部分启用,我的配置文件已更新:
我保存和检索测试示例的代码如下:
我的问题是数据只保存在本地(如 NSUserDefaults)。当我删除设备中的应用程序时,保存的数据不可恢复。显然,在其他设备中,数据也无法恢复。
第一次保存数据。接下来,如果我再次打开应用程序,else 代码可以很好地检索数据。但是当我删除de app并再次运行时,数据没有保存。
似乎数据没有保存在 iCloud 上,只保存在本地。
我的项目中只有“奇怪”的是项目名称与包名称不同。
更新:
我的问题仅在 iOS6 中。在 iOs7 中一切正常。当我在带有 iOs 6 的设备中调试我的应用程序时,“调试导航器”iCloud 部分显示:
配置 iCloud 的所有步骤似乎都可以(对于具有 iOs7 的设备可以正常工作),如果我使用以下代码对其进行测试,则可以正常工作:
怎么了?
谢谢!