在我的一些旧代码中,我遇到了警告:
不可变值 X 从未被使用,请考虑替换为“_”
例如,在检查具有关联对象的枚举(但在此情况下我不使用该对象)或者使用 'If let' 结构来检查对象是否为 nil 的情况下,这种警告经常发生。
我不太介意浏览这些警告并进行更改,但我想知道是否有人知道为什么建议这样做-为什么要警告我们?这会影响性能吗?
在我的一些旧代码中,我遇到了警告:
不可变值 X 从未被使用,请考虑替换为“_”
例如,在检查具有关联对象的枚举(但在此情况下我不使用该对象)或者使用 'If let' 结构来检查对象是否为 nil 的情况下,这种警告经常发生。
我不太介意浏览这些警告并进行更改,但我想知道是否有人知道为什么建议这样做-为什么要警告我们?这会影响性能吗?
推荐进行这些更改,因为如果您完全不使用这些变量,应该考虑将其替换为“_”。 这样您(和其他人)以后可以更快地理解您的意图。
从性能上讲,这可能只是微小的改进,您几乎无法注意到。同样的情况也适用于编译和优化您的代码。
不可变值X从未被使用,考虑替换为“_”
出现这个警告是因为你在声明变量后没有使用它。可以忽略警告并继续编写代码并使用对象,它将消失。
Swift 2是一种非常敏感的语言,它会在每一步都给你警告。
我在这里解释一个任何对象警告的简单演示:- 1.不可变值X从未被使用,考虑替换为“_” 当你只声明对象而不使用它时,就会出现这种情况。 例如:
var nameImg:String = "";
2. 变量'nameImg'已被定义但未被使用。 当您给对象分配任何值时,它将出现,但您仍未在任何其他对象中使用它。 例如-
var nameImg:String = "";
if(action==1){
nameImg = "navTab";
}
else{
nameImg = "back";
}
3. 没有警告会出现,如果您将任何值分配给对象并在另一个对象中使用它 ;).
例如-
var nameImg:String = "";
if(action==1){
nameImg = "navTab";
}
else{
nameImg = "back";
}
//back & menu btn
let btnBack = UIButton(type: UIButtonType.Custom);
btnBack.setImage(UIImage(named:nameImg), forState: UIControlState.Normal);
btnBack.sizeToFit();
这是因为在声明变量后,您从未使用过它。我不久前也遇到了完全相同的问题。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let row = indexPath.row <-----
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let row = indexPath.row <---
print(row) <---
if myObject != nil
这个警告出现是因为Xcode希望你改变变量。Xcode希望这个变量没有被使用。希望这可以帮到你。一旦你使用它,错误就会消失。我已经反复尝试过这个方法,并进行了研究,事实上每次都会消失。