iOS 开发中弄不清楚的小细节之数组 ——array == nil 和 [array count] == 0区别
2015-01-13 09:57
405 查看
很多时候我们开发者往往对一些比较难的技术点相对要熟悉一些,而对一些细节或者说感觉比较简单的问题总是弄不清楚,而数组的判断首当其冲。
我们在做开发的时候,需要数据,可是很多时候从服务器下发的数据都是JSon格式,当中会有数组的存在,那么开发中会出现一部分的数组中没有元素,这个时候,我们会习惯的用是不是为空来判断。例如:
但是我们会发现,不起作用,如过为空的时候会报这样的错误:
如果我们改动一下就会ok了。怎么改呢,就是在判断的时候改成arr.count!=0,这句话的意思就是说数组中的元素个数部位0,说白了就是数组不为空,这样的话,才能起到判断的效果,那么arr!=nil和arr.count!=0有什么区别呢,以为自己浅显的理解是这样的:array
== nil 和 [array count] == 0,前者为true的时候表示这个对象是nil,是一个空的指针。后者为true表示这个数组没有任何元素,所以判断数组是不是为空最好用[array
count] != 0,以上时自己的简单理解,有不正确的地方,还希望大家补充。
我们在做开发的时候,需要数据,可是很多时候从服务器下发的数据都是JSon格式,当中会有数组的存在,那么开发中会出现一部分的数组中没有元素,这个时候,我们会习惯的用是不是为空来判断。例如:
但是我们会发现,不起作用,如过为空的时候会报这样的错误:
如果我们改动一下就会ok了。怎么改呢,就是在判断的时候改成arr.count!=0,这句话的意思就是说数组中的元素个数部位0,说白了就是数组不为空,这样的话,才能起到判断的效果,那么arr!=nil和arr.count!=0有什么区别呢,以为自己浅显的理解是这样的:array
== nil 和 [array count] == 0,前者为true的时候表示这个对象是nil,是一个空的指针。后者为true表示这个数组没有任何元素,所以判断数组是不是为空最好用[array
count] != 0,以上时自己的简单理解,有不正确的地方,还希望大家补充。
相关文章推荐
- [ios]iOS开发之self.abc = nil与[_abc release]的区别【转】
- Objective-C(十一、不可变数组NSArray,可变数组NSMutableArray)——iOS开发基础
- iOS开发:Objective-C中nil、Nil与NULL的区别
- ios数组排序NSMut 4000 ableArray *temp = [NSMutableArray arrayWithObjects:@"5",@"1",@"4",@"2",nil];
- iOS开发nil/Nil/NULL的区别
- 黑马程序员——零基础学习iOS开发——05 C语言:进制、内存储存细节、类型说明符、位运算、数组
- iOS开发 nil,Nil,NULL的区别
- ios可变数组NSMutableArray和不可变数组NSArray的区别
- [ios]iOS开发之self.abc = nil与[_abc release]的区别【转】
- iOS开发学习第四课——数组Array
- iOS开发之self.abc = nil与[_abc release]的区别
- ios开发中nil,Nil,NULL,和[NSNul null]的区别
- (0047)iOS开发之nil/Nil/NULL的区别
- iOS开发中nil、Nil、NULL和[NSNull null]的区别
- [IOS 开发] self.myOutlet = nil 和 myOutlet = nil的区别
- iOS开发 -- Objective-c 中 nil, Nil, NULL和NSNull的区别
- IOS开发中nil和release的作用以及区别
- IOS 开发之 NSMutableArray与NSArray 的区别
- iOS开发之self.abc = nil与[_abc release]的区别
- iOS-报错[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'