gpt4 book ai didi

ios - 为什么 NSString 不响应选择器 longValue 但响应 longLongValue 和 intValue?

转载 作者:可可西里 更新时间:2023-11-01 17:14:38 26 4
gpt4 key购买 nike

我试图通过调用 longValue 获取 NSStringlong 值,但是 NSString 没有不响应 longValue。但是,它确实响应intValuelongLongValue

这是预期的行为吗?如果是,为什么?我看不出它响应 intValuelongLongValue 而不是 longValue 的合理原因。

我可以在 NSString 上添加一个类别并添加:

-(long)longValue{
return (long)[self longLongValue];
}

这解决了我的问题。但我仍然不明白为什么这不是默认实现。

最佳答案

编辑 1:

这应该回答你为什么我们不能从 NSString Major 64-bit changes 得到一个 longValue

第一个答案:

Apple 的文档提到只获取以下数字类型:

doubleValue
floatValue
intValue
integerValue
longLongValue
boolValue

Apple's doc on NSString

因此,从 NSString 类型获取 longValue 的方法之一可能就是您的操作方式。

当您将类型转换为 longValue 时,我不确定您是否会得到预期的结果。

但是,从 NSString 获取 longValue 的另一种可能方法是:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
long number = [[numberFormatter numberFromString:string] longValue];

关于ios - 为什么 NSString 不响应选择器 longValue 但响应 longLongValue 和 intValue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35534321/

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