在我的旧代码的几个例子中,我得到警告:永远不会使用不可变值X,请考虑用'_'替换例如,如果我正在检查一个有关联对象的枚举(但在这种情况下我不使用该对象),或者如果我正在使用“If let”构造来检查一个对象是否为nil,这种情况经常发生。浏览这些警告并进行更改并不会让我感到困扰,但我想知道是否有人知道为什么建议这样做--为什么要费心警告我们?这会以任何方式影响性能吗?
68bkxrlz1#
我们建议您做这些更改,因为如果您根本不使用这些变量,您应该考虑将其替换为“_”,这样您(和其他人)以后可以更快地理解您的意图。就性能而言,这可能只是一个你根本注意不到的小改进,同样的情况也适用于代码的编译和优化。
ki1q1bka2#
**永远不会使用不可变的值X,请考虑用'_'**替换
出现此警告是因为您在声明变量后没有使用它。只要忽略此警告并继续编写代码并使用对象,它就会消失。雨燕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();
9w11ddsr3#
这是因为你的值在声明后从未被使用过,不久前我也遇到了同样的问题。
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) <---
scyqe7ek4#
一般来说,在日常工作中,你应该不带警告地工作。显而易见的原因是,如果你的代码产生了数百个不那么重要的警告,你将错过 * 真实的 * 的和重要的警告。你所描述的案例最好这样解决:您最好使用以下命令,而不要使用if let myObject = myObject:
if let myObject = myObject
if myObject != nil
这样,你就清楚自己想要做什么。
piwo6bdm5#
出现此警告是因为Xcode希望您更改变量。Xcode希望该变量尚未使用。希望这有帮助。一旦您使用它,错误就会消失。我已经多次尝试并研究过它,事实上每次都消失了。
5条答案
按热度按时间68bkxrlz1#
我们建议您做这些更改,因为如果您根本不使用这些变量,您应该考虑将其替换为“_”,这样您(和其他人)以后可以更快地理解您的意图。
就性能而言,这可能只是一个你根本注意不到的小改进,同样的情况也适用于代码的编译和优化。
ki1q1bka2#
**永远不会使用不可变的值X,请考虑用'_'**替换
出现此警告是因为您在声明变量后没有使用它。只要忽略此警告并继续编写代码并使用对象,它就会消失。
雨燕2是非常敏感的语言,它会给予你警告的每一步。
我正在解释一个简单的演示警告任何对象在这里:- 1 .**不可变的值X是从来没有使用考虑替换为'_'**它会来当你不使用的对象和声明它只。例如:-
2.变量'nameImg'已被写入,但从未被读取当您要为对象赋值,但尚未在任何其他对象中使用它时,它就会出现例如-
3.没有警告如果您正在为您的对象赋值并在另一个对象中使用它;).
前
9w11ddsr3#
这是因为你的值在声明后从未被使用过,不久前我也遇到了同样的问题。
我发现,只要打印后,使错误消失。
scyqe7ek4#
一般来说,在日常工作中,你应该不带警告地工作。显而易见的原因是,如果你的代码产生了数百个不那么重要的警告,你将错过 * 真实的 * 的和重要的警告。
你所描述的案例最好这样解决:您最好使用以下命令,而不要使用
if let myObject = myObject
:这样,你就清楚自己想要做什么。
piwo6bdm5#
出现此警告是因为Xcode希望您更改变量。Xcode希望该变量尚未使用。希望这有帮助。一旦您使用它,错误就会消失。我已经多次尝试并研究过它,事实上每次都消失了。