我正在使用soap库并将项目切换到Apple LLVM 3.0编译器给了我几百个错误,无论如何几乎修复了所有错误。代理一个。
在线上'while(eachObject .....' 给我一个编译器错误'错误:'va_arg'的第二个参数是非POD类型'id'[-Wnon-pod-varargs,3]'
我不知道传递的对象的类型。它在以前的编译器版本中有效,但这个版本有点挑剔。
- (id)initWithObjects:(id)firstObj, ...{
if(self = [self init]) {
id eachObject;
va_list argumentList;
if (firstObj) {
[self.items addObject: firstObj];
va_start(argumentList, firstObj);
while (eachObject == va_arg(argumentList, id)) {
[self.items addObject: eachObject];
}
va_end(argumentList);
}
}
return self;
}
答案 0 :(得分:1)
而不是id
,请尝试将参数作为void *
,并在单独的步骤中将其转换为id
。我不确定为什么clang会对此有所帮助,但至少应该让它快乐。