static NSString 生成编译警告

发布于 2024-11-18 22:49:08 字数 404 浏览 2 评论 0原文

在一个符合 NSCoding 协议的简单 NSObject 子类中,我在头文件中声明了一些静态 NSString

static NSString *MYCodingKey = @"myPropertyName";
...

我想知道为什么 Xcode 会生成这么多关于我声明但不使用它的事实的警告。我理解这个警告,因为子类被导入到许多文件中,并且我没有在每个文件中使用密钥。但是,这是否意味着每次导入标头时我的密钥都会以某种方式“重新定义”? #import 语句不会阻止标头被多次包含吗?我当然没有警告说我已经声明过多次。

我当时只是忽略了这些警告,但我很乐意阅读更多相关内容。

谢谢。

In a simple NSObject subclass that conforms to NSCoding protocol, I declare some static NSString in my header file :

static NSString *MYCodingKey = @"myPropertyName";
...

I wonder why Xcode is generating so many warnings about the fact I declare but don't use it. I understand the warning since the subclass is imported in many files and I don't employ the key for something in each. But so, does it mean that my key is in some way 'redefined' each time I import the header ? Doesn't the #import statement prevent the header from being included multiple times ? I surely don't have warning saying I've declared it multiple times.

I'm just ignoring these warnings at the time, but I would be glad to read a bit more on that.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏天碎花小短裙 2024-11-25 22:49:08

好吧,警告是因为您声明了一个变量,但您没有使用它。本质上,您只是在程序数据部分中浪费了一些您永远不会使用的东西。如果不使用该符号,一些编译器会对其进行优化并实际上将其删除(不确定带有 objc 标志的 gcc 是否会这样做)。

Well the warning is because you have a variable declared but you're not using it. Essentially you're just wasting space in the programs data section with things you're never going to use. Some compilers will optimize it and actually remove it if the symbol is not used (not sure if gcc with objc flag does so).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文