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
_NSCFStringtoNSString. As a subclass ofNSStringit's guaranteed to respond to-isEqualToString:(and every other method inNSString). Your issue is not coming from the string, likely it is coming frommyDictionary. Try logging all the keys in the dictionary and make sure it is behaving as expected.