在 for in 循环中使用变量,不认为编译器会读取...为什么呢?
我有一个 NSArray,我在本地函数内声明该变量并在 for 循环中使用。但是,当我分析
代码时,它似乎是一个错误或问题。问题是死存储 - 初始化期间存储到“元素”的值永远不会被读取。
但我确实在 for in 循环内使用该变量...
视觉描述:
所以问题是,为什么编译器说创建 NSArray
后我还没有阅读代码中的任何地方?
PS Code 按我的预期运行,但我只想知道为什么会出现此问题?
感谢您给出的任何解释。
I have an NSArray
, and I am declaring that variable inside a function locally and used inside in for loop. But while I Analyze
code it appears to be an error or an issue. The issue is Dead store - Values stored to 'elements' during initialisation is never read.
But I do use that variable inside a for in loop...
Visual Description :
So the question is, Why compiler says that after creating NSArray
I haven't read anywhere in my code?
P.S. Code runs as I intended, but I just want to know why is this issue showing up?
Thanks for any explanation given.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在为
elemnts
分配内存并初始化它,然后两行后您覆盖该变量,而从未使用过分配的内存!只需这样写:
You're allocating memory for
elemnts
and initialising it, and then two lines later you overwrite that variable having never used the allocated memory!Just write this instead:
您的第一行是为数组分配空间,但不使用该空间。
当您分配时:
您将该变量指向另一个内存空间,因此第一个内存空间是无用的。
您可以通过删除第一行并将元素行设置为如下来解决此问题:
Your first line is allocating space for the array, but not using that space.
When you assign:
you are pointing that variable at another memory space, so the first one is useless.
You can fix this by just deleting your first line, and making your elements line like this: