我有以下代码,但是当我尝试使用此键从该字典中获取值时,它崩溃了。当我删除@时,它工作得很好。任何的想法?
[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:[NSString stringWithFormat:@"@%@", profileItem.username]];
我有以下代码,但是当我尝试使用此键从该字典中获取值时,它崩溃了。当我删除@时,它工作得很好。任何的想法?
[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:[NSString stringWithFormat:@"@%@", profileItem.username]];
问题是,键开头的“@”在键值编码中具有特殊意义——它用于集合运算符,如@count
. 因此,KVC 密钥不能以该字符串开头。setValue:forKey:
因此,您必须使用 NSDictionary 的原语而不是 KVC setObject:forKey:
。
如果profile.username
是一个NSString
,你为什么要这样做?为什么不直接用它做钥匙呢?
[self.replacementFBMsgDictionary_ setValue:profileItem.fbId forKey:profileItem.username];