从本子上拷贝一开源项目到台式上,陡然间多了8个warning:Format string is not a string literal。
陡然间就觉得很呵呵有木有!
NSString *message = @"Attempting to connect while connected or accepting connections. Disconnect first.";
[NSException raise:AsyncSocketException format:message]; //警告出现处跟踪查询了一下,里面有个方法是:
+ (void)raise:(NSString *)name format:(NSString *)format, ... NS_FORMAT_FUNCTION(2,3);
format确实是string啊,那么NS_FORMAT_FUNCTION(2,3)又是什么呢?
NS_FORMAT_FUNCTION(2,3) 是系统库的一个宏定义,用于自定义可变参数函数,官方解释是:
// Marks APIs which format strings by taking a format string and optional varargs as arguments
将警告处改为下面这样就好了:
[NSExceptionraise:AsyncSocketExceptionformat:message,nil];
嗯,好像说够了,撒哟!
版权声明:本文为a1484原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。