7

我从服务器获取字典

myDictionary = 
{
"rank":"1",
"color":"red",
"position":"middle"
}

现在我想在 if 条件下检查键“位置”的值

我正在这样做

if ([[myDictionary valueForKey:@"position"] isEqualToString:@"middle"]) {
        //do Some stuff
} else{
        //do some other stuff
}

但是数据类型[myDictionary valueForKey:@"position"]_NSCFString,所以它不能正确比较值,即使值正确也不会进入 if 循环。

如何将其转换为NSString以便在 if 条件下进行比较?

我看过这些问题。。

NSString 实例将其类报告为 NSCFString

从 NSCFString 获取 NSString

xcode中的NSString或NSCFString?

从这些问题中我才知道这 NSString实际上是一个用于不同类型字符串对象的容器类。通常 NSString 构造函数返回一个实际上是 type 的对象NSCFString,它是核心基础的一个薄包装CFString struct

但他们没有帮助我..没有人真正告诉如何转换成 NSString,所以请不要将其标记为重复。

4

2 回答 2

6

您无需转换_NSCFStringNSString. 作为NSString它的子类,它保证响应-isEqualToString:(以及 中的所有其他方法NSString)。您的问题不是来自字符串,可能来自myDictionary. 尝试记录字典中的所有键并确保其行为符合预期。

于 2014-04-18T09:16:21.023 回答
0
于 2014-04-18T09:16:12.607 回答