I am getting a dictionary from server
myDictionary =
{
"rank":"1",
"color":"red",
"position":"middle"
}
Now I want to check the value of key "position" in if condition
I am doing it like this
if ([[myDictionary valueForKey:@"position"] isEqualToString:@"middle"]) {
//do Some stuff
} else{
//do some other stuff
}
but data type of [myDictionary valueForKey:@"position"]
is _NSCFString
, so it does not compare value properly and never goes in if loop even the value is correct.
how do I convert it into NSString
so that I could compare it in if condition ?
I have seen these questions..
NSString instance reports its class as NSCFString
Getting an NSString from an NSCFString
NSString or NSCFString in xcode?
from these question I just came to know that
NSString
is really a container class for different types of string objects. Generally an NSString constructor does return an object that is actually of type NSCFString
, which is a thin wrapper around the Core Foundation CFString
struct
.
but they didn't help me..and no one actually telling how to convert in into NSString, so please don't mark it as duplicate.
You don't need to convert _NSCFString
to NSString
. As a subclass of NSString
it's guaranteed to respond to -isEqualToString:
(and every other method in NSString
). Your issue is not coming from the string, likely it is coming from myDictionary
. Try logging all the keys in the dictionary and make sure it is behaving as expected.