我使用的是OSX,而不是IOS,XCode 9.3。
我有这样的方法
- (void)logMessage:(NSString *)format, ... {
va_list args;
va_start(args, format);
id arg = nil;
while ((arg = va_arg(args,id))) {
// Arg processing here
}
va_end(args);
}
当我用一种格式调用它时,就很好了。但是-有时我不需要格式的参数,所以我想知道a是否可以这样称呼:
[self logMessage:@"Something"];
然后它在EXC_BAD_ACCESS的“ while”循环中崩溃。显然是因为我忘了零。
[self logMessage:@"Something",nil];
有没有一种方法可以告诉编译器使我想起方法声明中的nil或如何捕获这些情况?
编辑: 到目前为止的方法声明:
- (instancetype)initWithType:(enum kSHErrorType)kSHErrorType
format:(NSString *)format, ... NS_FORMAT_FUNCTION(2,3);