【发布时间】:2011-10-05 16:17:41
【问题描述】:
我正在整理一份面试问题列表,供面试 Cocoa 开发人员的人参考。我是一名程序员,但我从未做过 Objective-C。我偶然发现了一个涉及动态类型的interesting question。它应该是初级的,我已经尝试过并编译过它,但我仍然不确定它是如何以及为什么工作的。
问题是
当您执行以下操作时,在编译时和运行时会发生什么:
NSString *s = [NSNumber numberWithInt:3];
int i = [s intValue];
在调试器中我得到
i = (int) 3 s = (__NSFCNumber*) 0x383(无效地址)NSLog(@"%d",i) 的输出为3,NSLog(@"%@",s) 的输出为3。
有人能解释一下编译器和运行时系统是如何处理这一切的吗科学?
【问题讨论】:
标签: objective-c cocoa dynamic-typing