__attribute__((format())) 这个format有3个参数. int my(NSString *str,NSString *str1,NSArray*str2,...) __attribute__((format(__NSString__,2,4))); 三个参数告诉编译器,第二个参数必须是NSString类型,且可变参数从第4位开始. 如果你把第二个参数改成别的类型,或者加一个参数,使可变参数变成了第五个,这都是不行的. __attribute__((nonnull())…