宏定义的一个很好的应用,解决一些常见问题,使程序更加健壮 //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_>=0)&&(_INDEX_<[_ARRAY_ count])?([_ARRAY_ objectAtIndex:_INDEX_]):(nil))//有返回值
//2、解决将空值加入数组造造成的崩溃
#define ADD_OBJECTINTOARRAY_(_OBJ_,_ARRAY_) ( {if(_OBJ_){[_ARRAY_ addObject:_OBJ_];}})
//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_>=0)&&(_INDEX_<[_ARRAY_ count])?([_ARRAY_ objectAtIndex:_INDEX_]):(nil))//有返回值
//2、解决将空值加入数组造造成的崩溃
#define ADD_OBJECTINTOARRAY_(_OBJ_,_ARRAY_) ( {if(_OBJ_){[_ARRAY_ addObject:_OBJ_];}})