2013-02-28 27 views
0

我有以下代码,但是当我试图使用此密钥从该字典中获取值时,它崩溃了。当我删除@时,它工作得很好。任何想法?使用@作为NSDictionary字符串中的键的一部分

[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:[NSString stringWithFormat:@"@%@", profileItem.username]]; 
+1

哪个@?你能否更新该行的崩溃版本的问题? – rickerbh 2013-02-28 01:26:21

回答

5

的事情是,“@”在关键的开头在键 - 值编码特殊的意义 - 这是用于收集运营商如@count。因此,KVC密钥不能以该字符串开头。因此,而不是KVC setValue:forKey:,您将不得不使用NSDictionary的原始setObject:forKey:

+0

很好的捕获,这正是我所期待的 – adit 2013-02-28 03:47:47

0

如果profile.usernameNSString,你为什么这样做?为什么不把它用于密钥?

[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:profileItem.username]; 
+2

他正在使用@“@%@”,因为他有@符号作为密钥的第一个字符。 – 2013-02-28 01:31:20

相关问题