NSMutableArray* arr ;
[arr addObject:@"a"];
NSLog(@"count %lu", arr.count);
定义了arr数组,但没有alloc, 更没有init,然后就直接addObject,没有异常,然后调用元素总数, count,返回0.
为什么obj-c这么诡异,为什么这样都不抛异常?
OBJ-C语言这样设定的原因是什么,因为大部分编程语言中,一个对象没有实例化而拿来用的话,通常是会抛异常。
4 个解决方案
#1
arr没有实例化之前应该是nil吧,然而对nil进行任何操作,都不会报错。。。
#2
为什么是这样的程序语言设计呢?
其它常见的语言,都不可能有这样低级的设计。
#3
有人知道吗?
#4
这是 object c的特性呀,除了苹果这家是这么干的,其它家都不是。
苹果自以为是的独立特行也不仅仅体现在这一点了
苹果自以为是的独立特行也不仅仅体现在这一点了
#1
arr没有实例化之前应该是nil吧,然而对nil进行任何操作,都不会报错。。。
#2
arr没有实例化之前应该是nil吧,然而对nil进行任何操作,都不会报错。。。
为什么是这样的程序语言设计呢?
其它常见的语言,都不可能有这样低级的设计。
#3
arr没有实例化之前应该是nil吧,然而对nil进行任何操作,都不会报错。。。
为什么是这样的程序语言设计呢?
其它常见的语言,都不可能有这样低级的设计。
有人知道吗?
#4
这是 object c的特性呀,除了苹果这家是这么干的,其它家都不是。
苹果自以为是的独立特行也不仅仅体现在这一点了
苹果自以为是的独立特行也不仅仅体现在这一点了