Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 静态NSString生成编译警告_Xcode_Static_Nsstring - Fatal编程技术网

Xcode 静态NSString生成编译警告

Xcode 静态NSString生成编译警告,xcode,static,nsstring,Xcode,Static,Nsstring,在符合NSCoding协议的简单NSObject子类中,我在头文件中声明了一些静态NSString: static NSString *MYCodingKey = @"myPropertyName"; ... 我想知道为什么Xcode会对我声明的事实产生如此多的警告,但不使用它。我理解这个警告,因为子类被导入到许多文件中,并且我没有在每个文件中使用密钥。但是,这是否意味着每次导入标题时,我的键都以某种方式“重新定义”?#import语句是否阻止多次包含标题?我当然没有警告说我已经多次声明过了

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

static NSString *MYCodingKey = @"myPropertyName";
...
我想知道为什么Xcode会对我声明的事实产生如此多的警告,但不使用它。我理解这个警告,因为子类被导入到许多文件中,并且我没有在每个文件中使用密钥。但是,这是否意味着每次导入标题时,我的键都以某种方式“重新定义”?
#import
语句是否阻止多次包含标题?我当然没有警告说我已经多次声明过了

当时我只是忽略了这些警告,但我很乐意多读一点


谢谢。

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

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

问题是,它会为每个键和每个
#import
生成一条警告。然后,黄名单迅速扩大。由于我使用它们归档实例,并将其中一些用于“类外”的其他事情,因此我认为它们是正确的。但是为什么会有这样的警告呢?我从来没有在Obj-C上做过太多的工作,但是您是否确保您设置了避免多次导入相同内容的指令?例如#ifndef MYHEADER_H…etcIt可能与objective c的工作方式有关,因为一切都是在运行时动态类型化和计算的。因此,每个文件都是单独编译的,这就是为什么会收到如此多的警告。问题是,每个键和每个
#import
都会生成一个警告。然后,黄名单迅速扩大。由于我使用它们归档实例,并将其中一些用于“类外”的其他事情,因此我认为它们是正确的。但是为什么会有这样的警告呢?我从来没有在Obj-C上做过太多的工作,但是您是否确保您设置了避免多次导入相同内容的指令?例如#ifndef MYHEADER_H…etcIt可能与objective c的工作方式有关,因为一切都是在运行时动态类型化和计算的。因此,每个文件都是单独编译的,这就是为什么会收到如此多的警告。