次のコードがありますが、このキーを使用してこの辞書から値を取得しようとするとクラッシュします。@ を削除すると、問題なく動作します。何か案が?
[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:[NSString stringWithFormat:@"@%@", profileItem.username]];
次のコードがありますが、このキーを使用してこの辞書から値を取得しようとするとクラッシュします。@ を削除すると、問題なく動作します。何か案が?
[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:[NSString stringWithFormat:@"@%@", profileItem.username]];
キーと値のコーディングでは、キーの先頭にある「@」が特別な意味を持ちます。これは、 のようなコレクション演算子に使用され@count
ます。そのため、KVC キーをその文字列で始めることはできません。KVC の代わりに、setValue:forKey:
NSDictionary のプリミティブを使用する必要がありますsetObject:forKey:
。
の場合profile.username
、NSString
なぜそれをしているのですか?それを鍵に使ってみませんか?
[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:profileItem.username];