gpt4 book ai didi

objective-c - 将 NSNumber 分配给 NSString

转载 作者:行者123 更新时间:2023-12-02 22:03:09 24 4
gpt4 key购买 nike

 NSString *string = [NSNumber numberWithInt:2];
int var = [string intValue];

var 将为 2。所以为什么?我明白,这是关于动态类型的 smth,但幕后是什么?

最佳答案

此代码示例中没有强制转换:[string intValue]NSNumber 提供的常规 Objective C 方法,用于检索存储在内部的值作为整数.您将对象分配给 NSString 指针这一事实不会改变任何内容:内部对象仍然是 NSNumber。您不会崩溃,因为 Objective C 是一种动态类型的语言。它允许您分配错误类型的对象,但是如果您尝试在您的 string 对象上调用 NSString 的方法,您将遇到崩溃:

NSString *string = [NSNumber numberWithInt:2];
int var = [string intValue]; // OK
BOOL isTwo = [string isEqualToString:@"2"]; // Crash

关于objective-c - 将 NSNumber 分配给 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16550181/

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