2013-02-28 52 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

相關問題