不推荐使用NSString方法,但不替换它?

时间:2017-09-10 16:58:34

标签: objective-c xcode

我正在(重新)在基于10.5 SDK的10.6.8 VM下的XCode 3.2.6 64位中构建一个用目标c编写的项目(为了兼容10.5及以上 - 所以这是给定的。)构建正在起作用。但。我正试图解决这个项目中的最后四个警告。他们都是一样的警告。具体地说...

在项目中,有四个ASCII c字符串需要转换为目标c的NSString的四个对应实例。有四种基本相同的情况。这就是它的完成方式:

[tf setStringValue: [NSString stringWithCString: strg]]

这样可行,但会产生({4}} stringWithCString is deprecated并进一步观察的(四)警告,我发现自10.4左右以来一直如此。所以我希望10.5 SDK能够进行任何替换。

查看文档,建议的替换是:

[tf setStringValue: [NSString stringWithCString:NSASCIIStringEncoding: strg]]

然而,当使用它时,XCode说:

'NSString' may not respond to '+stringWithCString::'

这可能意味着它真的不会回应。此外,即使它确实如此,也可以用另一个警告替换一个警告...... yech。

任何人都知道我应该采取哪些不同的做法?我意识到这是旧的,旧的东西,但肯定回到这一天人们不只是让这些警告混乱他们的构建?我在这里遇到了某种语法错误,还是......?

1 个答案:

答案 0 :(得分:3)

  

[NSString stringWithCString:NSASCIIStringEncoding: strg]

调用this method的正确语法是:

[NSString stringWithCString:strg encoding:NSASCIIStringEncoding]