gpt4 book ai didi

casting - NSDictionary objectForKey 运行时错误的 stringValue

转载 作者:行者123 更新时间:2023-12-04 21:52:59 29 4
gpt4 key购买 nike

所以我有以下代码在 XCode 中导致运行时错误

NSString* temp = [[param objectforkey@"firstParam"] stringValue];
int tempNum = [[param objectforkey@"secondParam"] intValue];

参数从 plist 加载。 firstParam 为字符串,secondParam 为数字

第一行使程序崩溃。

现在有趣的是,如果我做一个硬种姓,它就会起作用,即:
NSString* temp = (NSString*)[param objectforkey@"firstParam"];
int tempNum = [[param objectforkey@"secondParam"] intValue];

只是想知道为什么 id 会有不一致的实现,因为我必须使用 intValue 转换为 int,但必须进行硬转换才能获得 NSString?为什么不是字符串值?

最佳答案

您第一次调用 objectForKey返回一个对象,它是 NSString . NSString没有 stringValue方法,这就是生成运行时错误的原因。获取 stringValue 没有意义已经是字符串的东西。

第二次调用objectForKey返回 NSNumber . NSNumber确实有 intValue方法,所以它不会导致错误。

在第二种情况下,您正在从 NSNumber 更改返回值的类型。至int .在第一种情况下,返回的对象已经是 NSString。并且尝试获取 stringValue 毫无意义的一个字符串。

关于casting - NSDictionary objectForKey 运行时错误的 stringValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16995937/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com