格式字符串不是字符串文字

时间:2014-10-15 10:34:30

标签: objective-c

如何使这种方法更安全?因为这依赖于一个数组来分发可以附加到应用更新之外的信息。

methods = [NSArray arrayWithObjects:@"martingale", @"reverse_martingale", nil];
methodString = [NSString stringWithFormat:methods[0]];

< - 格式字符串不是字符串文字(可能不安全)

2 个答案:

答案 0 :(得分:0)

你意识到自己在做什么吗? methods [0]用作 format 字符串,因为它们用于printf或NSLog。如果你从@" martingale"到@" martingale%s"然后它可能会崩溃。如果您不想使用格式字符串,请不要调用stringWithFormat。

答案 1 :(得分:0)

简单地转储使用stringWithFormat给出:

  1. 那些不是格式字符串。
  2. 您没有格式化任何内容。
  3. 请改用:

    methodString = methods[0];