首先我們知道在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_];}})