博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC语言的代码保护
阅读量:5968 次
发布时间:2019-06-19

本文共 1104 字,大约阅读时间需要 3 分钟。

hot3.png

1、向容器加对象

      主要指NSMutableArray、NSMutabledictionary。向这两个容器添加nil,会引起崩溃。所以在传入前,需要对传入的内容进行非错判断。

//错误示范NSString *addString = nil;NSMutableArray *mArray = [NSMutableArray array];[mArray addObject:addString];//建议写法NSString *addString = nil;NSMutableArray *mArray = [NSMutableArray array];if (addString != nil) {  [mArray addObject:addString];  }else {  NSLog(@"xx类xx方法试图向数组mArray传入一个nil");  }

2、从容器取数据

     主要指NSArray、NSMutableArray。从array里取数据,要注意防止下标数组越界。

//错误示范NSArray *array = @[@"a", @"b", @"c"];int index = 5NSString *testString = array[index];//建议写法NSArray *array = @[@"a", @"b", @"c"];int index = 5if (index < array.count) {   NSString *testString = array[index];}else {   NSLog(@"xx类xx方法试图从数组mArray取一个超出count的对象");}

3、调用其他类的方法或不知道要调用的方法当前SDK版本是否支持。需要先判断一下这个方法是否存在。

//错误示范[self.delegate 要调用的方法];    //建议写法if ([self.delegate respondsToSelector:@selector(要调用的方法)]) {                [self.delegate 要调用的方法];}

4、定义delegate属性的时候,一定要设置为weak。

//错误示范@property (nonatomic, assign)  id 
 delegate;//建议写法@property (nonatomic, weak)  id 
 delegate;

转载于:https://my.oschina.net/u/1418722/blog/262561

你可能感兴趣的文章
度量时间差
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
批量删除用户--Shell脚本
查看>>
Eclipse Java @Override 报错
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>