【发布时间】:2014-04-18 09:10:02
【问题描述】:
我正在从服务器获取字典
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 instance reports its class as NSCFString
Getting an NSString from an NSCFString
NSString or NSCFString in xcode?
从这些问题我才知道
NSString 实际上是一个用于不同类型字符串对象的容器类。通常,NSString 构造函数会返回一个实际上是 NSCFString 类型的对象,它是核心基础 CFString struct 的薄包装。
但他们没有帮助我..并且没有人真正告诉如何将其转换为 NSString,所以请不要将其标记为重复。
【问题讨论】:
-
试试这个 if ([(NSString *)[myDictionary valueForKey:@"position"] isEqualToString:@"middle"])
-
已经试过了..没用..
标签: ios objective-c nsstring nscfstring