【问题标题】:Remove "Format String is not a string literal" warning from xcode从 xcode 中删除“格式化字符串不是字符串文字”警告
【发布时间】:2012-06-26 18:05:16
【问题描述】:

当我使用 XCode 时,我(显然)放入了一堆 NSLog 语句来跟踪一些变量和方法执行等。但是,我不断收到这个警告: Format String is not a string literal (potentially insecure)。我明白为什么会出现这种情况,但我也明白这让我心烦意乱,尤其是当我收到 20 或 30 条此类警告时,更难追踪真正的错误。特别是因为字符串中的所有内容都是由系统定义的,而不是用户定义的。有什么方法可以禁用此警告吗?这是导致警告的行的示例。

NSLog([@"writeInfo " stringByAppendingString:[self saveFilePath:temp]]);

【问题讨论】:

    标签: objective-c ios xcode lldb


    【解决方案1】:

    NSLog 自己接受格式字符串,您不需要内联创建字符串。也就是说,你只需要写:

    NSLog(@"writeInfo %@", [self saveFilePath:temp]);
    

    【讨论】:

    • 谢谢,这适用于所有涉及组合两个字符串的 NSLog。有没有办法为NSLog(temp) 之类的东西执行此操作,或者我必须将其添加到字符串中?
    • 使用NSLog(@"%@", temp);。 Xcode 警告你是因为如果temp 包含% 怎么办?如果您使用temp 作为第一个参数,NSLog 会认为这是一个格式说明符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2010-12-13
    • 2011-05-24
    • 2019-04-19
    相关资源
    最近更新 更多