gpt4 book ai didi

objective-c - 静态 NSInteger 未使用的变量警告,但 NSString 没有

转载 作者:太空狗 更新时间:2023-10-30 03:29:35 25 4
gpt4 key购买 nike

将 Xcode 更新到 5.1 版后,我收到一条警告,告诉我定义了一个我没有使用的常量。它的定义如下所示:

static NSInteger const ABCMyInteger = 3;

我很高兴看到它被标记了,因为我认为这意味着编译器现在能够检查未使用的常量以及局部变量。

我重构了一些,使三个 NSString 常量过时了。这三个的定义与上面的 NSInteger 非常相似:

static NSString *const ABCMyString = @"ABCMyString";

然而,令我惊讶的是,这些并没有被标记为“未使用”,尽管我确信它们不再被使用。

有人可以解释为什么 NSInteger 会被编译器注意到为未使用,而 NSString 却不会吗?

最佳答案

原始变量只是分配在静态内存部分并由编译器初始化的内存块。然而,字符串对象是一个在运行时(可能是在启动时)初始化的变量,因此编译器会向构造函数添加一个隐式调用,并使用该变量作为该调用的参数。所以正在使用变量。

结构的 _unused 项是恕我直言,不是指令,而只是一个成员变量,添加它可能是为了更好地对齐(将对象大小填充为圆形大小)。

关于objective-c - 静态 NSInteger 未使用的变量警告,但 NSString 没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com