在ios中初始化一个数组,比如:
NSMutableArray *array = [[NSMutableArray alloc] init];
如果,想看这个array中某个index下的object是否为空时,怎么做呢?
我平常ruby用惯了,所以很自然的,使用索引去取,然后判断是不是nil就行:
[array objectAtIndex:0];
结果,抛出异常,*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
原因是,NSMutableArray初始化的时候是空数组,并不存在index是0的对象,所以取数据越界了。
解决方案,在数组初始化后,先给根据数组的长度填充NSNull对象。
for (NSInteger i = 0; i < 4; ++i) { [array addObject:[NSNull null]]; }
这样,再取出的数据就不会抛出NSRangeException异常了。
以后想要使用非空对象时,直接替换对应index的NSNull即可:
[array replaceObjectAtIndex:0 withObject:object];
原创帖,转发请注明出处:http://thierry-xing.iteye.com/blog/1773354
相关推荐
son数据去除nsnull
③ NSNULL:[NSNull null] 是一个对象,他用在不能使用 nil 的场合。 因为在 NSArray 和 NSDictionary 中 nil 有特殊的含义(表示列表结束),所以不能在集合中放入 nil 值。如要确实需要存储一个表示“什么都没有”...
一、首先分析问题: 使用NSJSONSerialization或者AFN框架的AFHTTPSessionManager(底层也是NSJSONSerialization)将NSData数据转化成OC对象,有时会出现URL正确,加载数据任然会报错: reason: '-[NSNull length]:...
服务器不靠谱? 总是数据崩溃? 试试呗!
相信有不少朋友想知道,在 Objective-C 中 nil 和 Nil 以及 NULL 的区别。最重要的是,在面试中还有不少朋友常会被问到。现在小编在这里统一详细说明。
主要介绍了iOS中nil、Nil、NULL、NSNull详解的相关资料,需要的朋友可以参考下
使用递归方式遍历网络返回数据,找到字符串类型为[NSNull class] 替换为@“”。或者去我的github:https://github.com/chenXming/SetNulllWithStr.git 不要吝啬给个星。
JJException 常见问题... 无法识别的选择器已发送给实例(方法不存在异常) NSNull(方法不存在异常) NSArray,NSMutableArray,NSDictonary,NSMutableDictionary(数组越界,键值参数异常) KVO(忘记删除keypath
NullSafe是NSNull上的一个简单类别,它为无法识别的消息返回nil而不是引发异常。 这消除了导致崩溃的常见原因,例如,JSON数据包含空值而不是数组或字符串,并且应用程序中的网络代码不希望它。 支持的iOS和SDK版本 ...
NSNUllCategory相信不少开发者,都被NSNull坑过,最常见的是服务器返回的json里面,说好的字典、数组、数字,结果返回的是空值。 这个时候,NSJSONSerialization 会自动把他们换成 NSNull。当我们再去用dict[@...
1.数组越界,nil值初始化导致的崩溃 2.对字典插nil值,或者读取NSNULL导致的崩溃 3.字符串的截取越界导致的崩溃 4.doesNotRecogniz
重写操作符,主要针对数组,字典,NSNull的异常使用加容错
有一些诸如Mantle,RESTKit之类的库可以帮助您解决这些问题,但是我想要的是自包含的,易于更改/删除且需要最少代码量的东西。 我在创建创建了Property Mapper , 是一个简单的自包含解决方案,它使您可以指定接收...
要在项目中使用SwiftAeson,您需要为要使用JSON进行序列化和反序列化的任何类型实现协议ToJSON和FromJSON 。 这是一个例子。 首先,我们定义一个Test类: class Test : Equatable { var test : String = " test ...
大家都是知道使用宏不仅方便,而且可以提高开发效率。下面总结了iOS开发过程中的一些常用宏,会持续的往里面添加。 Objective-C //字符串是否为空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]...
判断字符串为空:看似简单的问题,有人会说不就使用[string isEqualToString:@]或者更简单的string.text == nil就行了嘛。但是并没有考虑到其中存在的一些问题,例如当字符串中存在空格或者换行时或者当请求后台数据...