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.demo
的key path?
【讨论】:
我在使用 setObject 时遇到另一个错误。错误“不兼容的整数到指针的转换将 NSInteger aka long 发送到 id 类型的参数currentvalue
,而不是currentValue
。但是你真的应该重新检查你的命名。以上是关于iCloud 数据错误的主要内容,如果未能解决你的问题,请参考以下文章
错误:json 字符串不是以 icloud 的数组或对象开头
addPersistentStoreWithType 为 iCloud 存储返回错误“尝试插入零密钥”