我正在从服务器获取字典
myDictionary =
{
"rank":"1",
"color":"red",
"position":"middle"
}
现在我想在 if 条件下检查键“position”的值
我是这样做的
if ([[myDictionary valueForKey:@"position"] isEqualToString:@"middle"]) {
//do Some stuff
} else{
//do some other stuff
}
但数据类型为[myDictionary valueForKey:@"position"]
是_NSCFString
,因此它不会正确比较值,即使值正确也不会进入 if 循环。
如何将其转换为 NSString
以便我可以在 if 条件下进行比较?
我看到了这些问题..
NSString instance reports its class as NSCFString
Getting an NSString from an NSCFString
NSString or NSCFString in xcode?
从这些问题中我才知道
NSString
实际上是不同类型字符串对象的容器类。通常 NSString 构造函数确实会返回一个实际类型为 NSCFString
的对象。 ,这是核心基础的薄包装 CFString
struct
.
但他们没有帮助我..而且没有人实际告诉如何将其转换为 NSString,所以请不要将其标记为重复。
最佳答案
您不需要将 _NSCFString
转换为 NSString
。作为 NSString
的子类,它保证响应 -isEqualToString:
(以及 NSString
中的所有其他方法)。您的问题不是来自字符串,可能是来自 myDictionary
。尝试记录字典中的所有键并确保它按预期运行。
关于ios - 将 NSCFString 转换为 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23150967/