关于对数组操作的宏定义

首先我们知道在ios开发过程中很容易出现数组越界,以及将空值添加进数组的现象,在项目过程中为了避免此类现象发生写了如下宏定义

1、解决数组越界

1)#define OBJECT_OF_ARRAY_ATINDEX(_OBJ_,_ARRAY_,_INDEX_) ({if(_ARRAY_ && _INDEX_<[_ARRAY_ count]){ _OBJ_ = [_ARRAY_ objectAtIndex:_INDEX_];}})
2)#define OBJECT_OF_ATINDEX(_ARRAY_,_INDEX_) ((_ARRAY_)&&(_INDEX_<[_ARRAY_ count])?([_ARRAY_ objectAtIndex:_INDEX_]):(nil))

注释:1)无返回值,采取直接赋值的方式

           2)有返回值

2、解决将控制加入数组造成宕机

#define ADD_OBJECTINTOARRAY_(_OBJ_,_ARRAY_) ( {if(_OBJ_){[_ARRAY_ addObject:_OBJ_];}})
原文地址:https://www.cnblogs.com/zzltjnh/p/2790869.html