iCloud 数据错误

Posted

技术标签:

【中文标题】iCloud 数据错误【英文标题】:iCloud data Error 【发布时间】:2015-06-26 01:38:14 【问题描述】:

我想在加载视图控制器时将 NSInteger 保存到 iCloud。我尝试将 NSInteger 数据保存到 iCloud,但我没有这样做。因此,我将其转换为 NSNumber。所以问题是当我尝试将 NSNumber 保存到 iCloud 时,它失败并出现错误

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合密钥币云的密钥值编码。”

这是我使用的代码

 NSInteger currentValue = [[NSUserDefaults standardUserDefaults]
                             integerForKey:@"coins.demo"];

   NSNumber *currentvalue = [NSNumber numberWithInt:currentValue];

   NSUbiquitousKeyValueStore *cloudStore = [NSUbiquitousKeyValueStore defaultStore];

   [cloudStore setValue:currentvalue forKey:@"coinscloud"];

   [cloudStore synchronize];


   NSNumber *cloudcoins = [cloudStore valueForKey:@"coinscloud"];

   _coinLabel.text = [NSString stringWithFormat:@"%li", (long)]coinscloud];

感谢您的帮助

【问题讨论】:

【参考方案1】:

改用-setObject:forKey: (NSUbiquitousKeyValueStore):

[cloudStore setObject:/* <-- */ currentvalue forKey:@"coinscloud"];

顺便说一句:

NSInteger currentValue = [[NSUserDefaults standardUserDefaults]
                         integerForKey:@"coins.demo"];

您确定要使用key,而不是coins.demokey path

【讨论】:

我在使用 setObject 时遇到另一个错误。错误“不兼容的整数到指针的转换将 NSInteger aka long 发送到 id 类型的参数 currentvalue,而不是currentValue。但是你真的应该重新检查你的命名。

以上是关于iCloud 数据错误的主要内容,如果未能解决你的问题,请参考以下文章

处理 iCloud Core Data 错误

错误:json 字符串不是以 icloud 的数组或对象开头

addPersistentStoreWithType 为 iCloud 存储返回错误“尝试插入零密钥”

iCloud 打开/关闭错误

将 iOS 版本上传到应用中心时出现 icloud 授权错误

icloud 复制得到一个错误 Domain=NSCocoaErrorDomain Code=512