Abh*_*ngh 2 iphone objective-c clang-static-analyzer ios
以下代码
NSArray *colors = [[NSArray alloc]init];
if ([CONDITION]) {
colors = @[
[UIColor colorWithRed:240/255.f green:159/255.f blue:254/255.f alpha:1],
[UIColor colorWithRed:255/255.f green:137/255.f blue:167/255.f alpha:1],
[UIColor colorWithRed:126/255.f green:242/255.f blue:195/255.f alpha:1],
[UIColor colorWithRed:119/255.f green:152/255.f blue:255/255.f alpha:1],
[UIColor colorWithRed:240/255.f green:159/255.f blue:254/255.f alpha:1],
];
} else {
colors = @[
[UIColor colorWithRed:240/255.f green:159/255.f blue:254/255.f alpha:1],
[UIColor colorWithRed:255/255.f green:137/255.f blue:167/255.f alpha:1],
[UIColor colorWithRed:126/255.f green:242/255.f blue:195/255.f alpha:1],
[UIColor colorWithRed:119/255.f green:152/255.f blue:255/255.f alpha:1],
];
}
Run Code Online (Sandbox Code Playgroud)
这段代码执行得很完美但是在内存分析期间,我在静态分析器中遇到错误"Dead Store""在初始化过程中存储到'colors'的值永远不会被读取",我不知道我怎么能执行这段代码.
将第一行更改为
NSArray *colors;
Run Code Online (Sandbox Code Playgroud)
这足以声明变量.无需创建空数组并将变量设置为此未使用的实例.
在将变量设置为正确的数组(在条件中)之前,其值将nil在ARC下并且在手动保留计数中未定义.这与您的情况无关,因为在分配之前永远不会读取该值.
编辑:从评论和其他答案看来,人们似乎仍然专注于未使用数组的分配.当然它是多余的 - 但编译器警告是关于一个变量被分配然后在下一个赋值之前永远不会被读取的事实.如果您使用类型int的变量,警告将是相同的.
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |