在 Objective-C 2.0 中,我为 NSNumber 属性赋值:
myObject.myProperty = 5;
编译器告诉我:
ARC 不允许将“int”隐式转换为“NSNumber *”
所以我想,如果我这样做会发生什么:
myObject.myProperty = @5;
检查调试器中的属性显示:
_myProperty = (__NSCFNumber *) (int)5
这让编译器很高兴,似乎没有什么不好的事情发生,但我真的不明白发生了什么。
这个速记到底是做什么的,它安全吗?什么是 NSCFNumber?我在文档中没有看到它。