ios - 从 NSCFString 获取 NSString

标签 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

最佳答案

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

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

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

关于ios - 从 NSCFString 获取 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516293/

相关文章:

ios - 核心数据。如何交换 NSPersistentStores 并通知 NSFetchedResultsController?

iphone - 新的 paypal ios sdk 在设备中不起作用

ios - 如何在添加到 keyWindow 的 View 上方呈现模式?

ios - 无效的 Facebook token

ios - firebase ios 聊天应用程序无法正常工作

iOS——调用 contentsOfDirectoryAtPath 会在循环中泄漏内存

iphone - 将 NSData 数组写入文件

ios - 在UITableViewCell中以垂直顺序显示记录吗?

iphone - 如何将 NSTimer 与这个简单的 while 循环一起使用?

ios - 使用多线程登录iphone?