标题说明了一切。这是我的deadstore
警告的位置:
//"objects" is just an array that I have above
NSMutableArray *arr = [[NSMutableArray alloc]initWithCapacity:[objects count]];
arr = [methodReturningAnArray:withArrayParam]; //i give "objects" as param
它表示value stored during the initialization is never read
行上的[[alloc]init]
。
但是我已经读到在init期间给阵列定义一个大小是更优的,在这里我可以负担得起。有什么我做错了还是有一些魔法涉及?
答案 0 :(得分:3)
您在此处使用值初始化arr
:
NSMutableArray *arr = [[NSMutableArray alloc]initWithCapacity:[objects count]];
然后您立即覆盖该值并在此处为其指定 new 值:
arr = [methodReturningAnArray:withArrayParam];
相反,只需:
NSMutableArray *arr = [methodReturningAnArray:withArrayParam];
如果要修改数组的各个元素,则初始化具有容量的NSMutableArray
是最佳选择。你在这里做的是替换阵列批发。