好的,所以我知道格式字符串不是字符串文字警告,但我不知道为什么它出现在NSRunAlertPanel上,定义是:
APPKIT_EXTERN NSInteger NSRunAlertPanel(NSString * title,NSString * msgFormat,NSString * defaultButton,NSString * alternateButton,NSString * otherButton,...)NS_FORMAT_FUNCTION(2,6);
报告错误时,我通常只在消息上传递error.localizedDescription, 例如:
NSRunAlertPanel(@"error", err.localizedDescription, @"OK",nil,nil);
但升级到xcode 5.1后,我开始收到此警告。
所以我尝试过这样的事情:
NSRunAlertPanel(@"error", [NSString stringWithFormat:@"%@", err.localizedDescription], @"OK", nil, nil);
和它一样的情况。 任何人对如何解决这个问题都有任何想法?
答案 0 :(得分:8)
msgFormat
是消息格式字符串,应该是字符串文字。
在otherButton
之后,必要的参数被添加为“可变参数列表”。例如
NSRunAlertPanel(@"error", @"%@", @"OK", nil, nil, err.localizedDescription);
message format---^ arguments---^
答案 1 :(得分:0)
NSRunAlertPanel 创建警报面板。 (已弃用。请改用NSAlert。)