ios - 将 NSCFString 转换为 NSString

标签 ios objective-c nsstring nscfstring

我正在从服务器获取字典

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/

相关文章:

ios - Calabash iOS - wait_for_element_exists 不起作用

iphone - 如何在iOS中在PDF中绘制多种彩色文本?

ios - xCode:iPad 的强制方向

ios - 将选定的项目值快速传递给新的 View Controller

ios - UITextField 中的文本向下移动并闪烁?

iphone - 如何获取 NSString 中的 NSData 值

ios - 日历应用程序 : How to sync moved items?

ios - 使用 C 数组的对象的深拷贝

objective-c - OBJ-C : NSStrings - stringByAppendingString method

ios - 使用 "compare"比较 NSString,就像 Java 的 compareTo