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自带的. ...
随机推荐
- SpringBoot前后端分离Instant时间戳自定义解析
在SpringBoot项目中,前后端规定传递时间使用时间戳(精度ms). @Data public class Incident { @ApiModelProperty(value = "故 ...
- Redis面试题
1.谈谈Redis的主从复制流程 有几个重点:主节点负责写,从节点负责读,slave node 主要用来进行横向扩容,做读写分离,扩容的 slave node 可以提高读的吞吐量.必须开启 maste ...
- 【3分钟就会系列】使用Ocelot+Consul搭建微服务吧!
一.什么Ocelot? API网关是一个服务器,是系统的唯一入口.API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口.这样就可以明显的简化客户端实现和微服务应用程 ...
- 深入研究.NET Core的本地化机制
ASP.NET Core中提供了一些本地化服务和中间件,可将网站本地化为不同的语言文化. ASP.NET Core中我们可以使用Microsoft.AspNetCore.Localization库来实 ...
- C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解
C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...
- Pandas 基础学习
加载数据 Fun:pandas.read_csv >>> import pandas >>> food_info = pandas.read_csv("f ...
- Kafka数据迁移
1.概述 Kafka的使用场景非常广泛,一些实时流数据业务场景,均依赖Kafka来做数据分流.而在分布式应用场景中,数据迁移是一个比较常见的问题.关于Kafka集群数据如何迁移,今天笔者将为大家详细介 ...
- [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念
前言 本文为java.util.stream 包文档的译文 极其个别部分可能为了更好理解,陈述略有改动,与原文几乎一致 原文可参考在线API文档 https://docs.oracle.com/jav ...
- windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况
windows下查询端口占用情况 ,强制结束端口占用程序 查询8080端口被那个程序占用 如何强制结束windows下端口占用情况? 下面操作在win10下 在控制台执行命令 1.列出所有端口的情 ...
- springboot情操陶冶-@ConfigurationProperties注解解析
承接前文springboot情操陶冶-@Configuration注解解析,本文将在前文的基础上阐述@ConfigurationProperties注解的使用 @ConfigurationProper ...