随笔,记录一些常用的方法等
1、可变参数函数
- (id)mutilArgs:(id)otherArgs, ...
{
va_list params;//定义一个指向个数可变的参数列表指针;
va_start(params, otherArgs);//va_start得到第一个可变参数地址,
NSMutableArray *argsArray = [NSMutableArrayarray];
id arg;
int i=0;
if (otherArgs) {
arg = otherArgs;
do {
if ( arg ){
[argsArrayaddObject:arg];
i++;
}
} while ((arg =va_arg(params,id)));//va_arg指向下一个参数地址
}
}
需要注意的是,一个函数中只能有一组可变参数,且只能作为最后一个参数使用。
2、重写NSLog
#define NSLog(FORMAT, ...) fprintf(stderr,"[%s:%d]\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
在程序中,一般debug时会需要查看输出结果,但在release模式下,就不需要了。可以通过重写nslog来进行控制