Getting an NSString from an NSCFString



我阅读了S.O的相关内容,并在谷歌上做了一些搜索,但我找不到问题的答案。。。

我有一个返回NSCFString'sNSDictionary,我需要一个NSString,这样我就可以使用它的doubleValue函数。我一辈子都想不出如何把我的NSCFString变成NSString。我尝试了以下几项,但都没有成功:

NSString* lng_coord = (NSString*)[dict objectForKey:key];
            if ([lng_coord class] == [NSString class])
                NSLog(@"lng coord is an exact match with NSString class");
            else {
                NSLog(@"lng coord doesn't match NSString class");
                NSLog(@"The class of lng_coord is %@", [[dict objectForKey:key] class]);
            }
            NSLog(@"%@", lng_coord);
            [CelebsAnnotation setLongitude:[lng_coord doubleValue]];

这是控制台的输出:

lng coord doesn't match NSString class
The class of lng_coord is NSCFString
49.2796758

NSCFStringNSString的私有子类,您可以将其作为一个子类使用。

由于像类集群这样的模式,您不应该在这里直接比较类——而是使用-isKindOfClass:

if ([lng_coord isKindOfClass:[NSString class]]) {
    // ...

相关内容

最新更新