Ios 将NSCFString转换为NSString

Ios 将NSCFString转换为NSString,ios,objective-c,nsstring,nscfstring,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 = 
{
"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”]
的数据类型是
\u NSCFString
,因此它不能正确比较值,即使值是正确的,也不会进入循环

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

我见过这些问题

从这些问题我才知道
NSString
实际上是用于不同类型字符串对象的容器类。通常,NSCOPE构造函数返回一个实际上是类型为“代码> NSCFScord的对象,它是围绕核心基础<代码> CFStudio <代码>结构> <代码>的一个薄薄包装。
但是他们没有帮助我..而且没有人告诉我如何将其转换为NSString,所以请不要将其标记为重复。
CFString
s可以根据文档转换为
NSString
s

是以其核心基础对应的“免费桥梁”。有关免费桥接的更多信息,请参阅

你真的想弄明白为什么这些值不相等。分离方法调用:

NSString *positionValue = myDictionary[@"position"];
NSLog(@"Position value: %@", positionValue);
if ([positionValue isEqualToString:@"middle"]) {
    // do Some stuff
} else{
    // do some other stuff
}

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

如果([(NSString*)[myDictionary valueForKey:@“position”]isEqualToString:@“middle”])已经尝试过,请尝试此操作。。没有帮助。。什么位置值会注销?我知道时间太长了,但是,请发布更多解释。谢谢。@VladislavKan查看相关问题
NSString
是派生所有子类的父类。
NSString *positionValue = myDictionary[@"position"];
NSLog(@"Position value: %@", positionValue);
if ([positionValue isEqualToString:@"middle"]) {
    // do Some stuff
} else{
    // do some other stuff
}