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
}