Convert NSCFString to NSString

ios, nscfstring, nsstring, objective-c

Solution

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.

Problem

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.

Original source

Related problems