IOS判断NSArray是否为空
场景描述:判断一个集合是否为空,如果不为空执行A,如果为空执行B
Java实现方法
public void exec(){
List<String> list = this.getContent();
if (null != list && list.size()>0) {
//do something
}else{
//do nothing
}
}
IOS如何实现?先看下下面代码执行结果
- (void)viewDidLoad
{
[super viewDidLoad]; NSArray *ary ;
[self show:ary]; ary = nil;
[self show:ary]; ary = [[NSArray alloc]init];
[self show:ary]; ary = [NSMutableArray arrayWithObjects:@"11111", @"222",nil];
[self show:ary];
}
-(void) show:(NSArray *)ary{
NSLog(@"数组内容:%@",ary);
NSLog(@"数组class:%@",[ary class]); if (![ary isKindOfClass:[NSNull class]]) {
NSLog(@"NOT!!! isKindOfClass null");
}else{
NSLog(@"isKindOfClass null");
}
if (ary) {
NSLog(@"====非空=====");
}else{
NSLog(@"====空=====");
}
if (ary.count == 0) {
NSLog(@"count is 0");
}else{
NSLog(@"count is %lu",(unsigned long)ary.count);
}
NSLog(@"=====================华丽的分割线=======================");
}
执行结果如下:
2014-07-29 15:51:55.209 MyTempTest[297:60b]数组内容:(null)
2014-07-29 15:51:55.211 MyTempTest[297:60b]数组class:(null)
2014-07-29 15:51:55.212 MyTempTest[297:60b] NOT!!! isKindOfClass null
2014-07-29 15:51:55.213 MyTempTest[297:60b] ====空=====
2014-07-29 15:51:55.215 MyTempTest[297:60b] count is 0
2014-07-29 15:51:55.216 MyTempTest[297:60b] =====================华丽的分割线=======================
2014-07-29 15:51:55.217 MyTempTest[297:60b]数组内容:(null)
2014-07-29 15:51:55.218 MyTempTest[297:60b]数组class:(null)
2014-07-29 15:51:55.219 MyTempTest[297:60b] NOT!!! isKindOfClass null
2014-07-29 15:51:55.220 MyTempTest[297:60b] ====空=====
2014-07-29 15:51:55.221 MyTempTest[297:60b] count is 0
2014-07-29 15:51:55.222 MyTempTest[297:60b] =====================华丽的分割线=======================
2014-07-29 15:51:55.223 MyTempTest[297:60b]数组内容:(
)
2014-07-29 15:51:55.225 MyTempTest[297:60b]数组class:__NSArrayI
2014-07-29 15:51:55.226 MyTempTest[297:60b] NOT!!! isKindOfClass null
2014-07-29 15:51:55.227 MyTempTest[297:60b] ====非空=====
2014-07-29 15:51:55.228 MyTempTest[297:60b] count is 0
2014-07-29 15:51:55.229 MyTempTest[297:60b] =====================华丽的分割线=======================
2014-07-29 15:51:55.230 MyTempTest[297:60b]数组内容:(
11111,
222
)
2014-07-29 15:51:55.231 MyTempTest[297:60b]数组class:__NSArrayM
2014-07-29 15:51:55.232 MyTempTest[297:60b] NOT!!! isKindOfClass null
2014-07-29 15:51:55.233 MyTempTest[297:60b] ====非空=====
2014-07-29 15:51:55.234 MyTempTest[297:60b] count is 2
2014-07-29 15:51:55.235 MyTempTest[297:60b] =====================华丽的分割线=======================
结论:IOS判断一个数组是否为空,直接判断“ary.count”即可,即使ary尚未初始化也不会报“空指针”。
NSString *str ;
NSLog(@"%lu",(unsigned long)str.length);
2014-07-30 08:40:52.851 MyTempTest[391:60b] 0
objective-c里面声明一个类型,未初始化,直接调用方法都不报错?
IOS判断NSArray是否为空的更多相关文章
- iOS 判断数组是否为空
有人说可以用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出. 正确判断NSArray是否为空的方法:用 (!array) ...
- iOS判断数组不为空
用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出. 正确判断NSArray是否为空的方法: if(array != ni ...
- iOS 判断字符串是否为空
写一个字符串的扩展,实现判断字符串是否为空- (BOOL) isBlankString { if ([self isEqualToString:@"(null)"]) { retu ...
- iOS 判断数组不为空
if (array != nil && ![array isKindOfClass:[NSNull class]] && array.count != 0)
- iOS 中的block异常 判断block是否为空
我们在调用block时,如果这个block为nil,则程序会崩溃,报类似于EXC_BAD_ACCESS(code=1, address=0xc)异常[32位下的结果,如果是64位,则address=0 ...
- iOS数组的去重,判空,删除元素,删除重复元素 model排序 等
一: 去重 有时需要将NSArray中去除重复的元素,而存在NSArray中的元素不一定都是NSString类型.今天想了想,加上朋友的帮助,想到两种解决办法,先分述如下. 1.利用NSDiction ...
- ios 判断用户是否开启权限---并跳转设置
ios 判断用户是否开启权限---并跳转设置 ios 判断用户是否开启权限---并跳转“系统设置” 1.判断 访问相册 或 相机 权限是否开启 2.检测是否开启定位 后面将持续更新 只有在应用请求过位 ...
- java中判断list是否为空的用法
1.如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 } 2.list.isEmp ...
- JS心得——判断一个对象是否为空
判断一个对象是否为空对象,本文给出三种判断方法: 最常见的思路,for...in...遍历属性,为真则为"非空数组":否则为"空数组" 2.通过JSON自带的. ...
随机推荐
- Socket网络编程知识点
静态方法 与类无关,不能访问类里的任何属性和方法类方法 只能访问类变量属性@property 把一个方法变成一个静态属性, flight.status @status.s ...
- Elasticsearch 分词器
无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters , tokenizers , token filters. 内 ...
- Python爬虫入门教程 31-100 36氪(36kr)数据抓取 scrapy
1. 36氪(36kr)数据----写在前面 今天抓取一个新闻媒体,36kr的文章内容,也是为后面的数据分析做相应的准备的,预计在12月底,爬虫大概写到50篇案例的时刻,将会迎来一个新的内容,系统的数 ...
- Java基础17:Java IO流总结
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- Chapter 5 Blood Type——7
"You say that a lot," I noted, trying to ignore the sudden trembling in my stomach and kee ...
- Config Server高可用
一 简介构建高可用的Config Server集群,包括Config Server的高可用,以及依赖Git仓库的高可用. 二 Git仓库的高可用由于配置的内容都存储在Git仓库中,所以要想实现Conf ...
- leetcode — valid-palindrome
/** * Source : https://oj.leetcode.com/problems/valid-palindrome/ * * * Given a string, determine if ...
- ES6躬行记(12)——数组
ES6为数组添加了多个新方法,既对它的功能进行了强化,也消除了容易产生歧义的语法. 一.静态方法 1)of() ES6为Array对象新增的第一个静态方法是of(),用于创建数组,它能接收任意个参数, ...
- 痞子衡嵌入式:一表全搜罗常见低功耗广域物联网协议(NB-IoT/eMTC/LoRa/SigFox...)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是低功耗广域物联网协议. 上一篇痞子衡给大家搜罗了短距离无线通信协议,它是物联网的基础,但它的应用距离比较短,对于长距离的物联网应用鞭长莫 ...
- 《C#并发编程经典实例》学习笔记—2.4 等待一组任务完成
问题 执行几个任务,等待它们全部完成. 使用场景 几个独立任务需要同时进行 UI界面加载多个模块,并发请求 解决方案 Task.WhenAll 传入若干任务,当所有任务完成时,返回一个完成的任务. 重 ...