从NSCFString获取NSString

时间:2011-06-29 05:53:31

标签: ios objective-c iphone casting

我在S.O周围阅读并对谷歌做了一点点但是我无法找到问题的答案...

我有NSDictionary返回NSCFString's,我需要的是一个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

1 个答案:

答案 0 :(得分:12)

NSCFStringNSString的私有子类,您只需将其用作一个。

由于像class clusters这样的模式,你不应该直接比较这里的类 - 改为使用-isKindOfClass:

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