为什么新的Xcode版本会对在块内使用self发出警告

为什么新的Xcode版本会对在块内使用self发出警告,xcode,compiler-warnings,Xcode,Compiler Warnings,为什么新的Xcode版本会对在块内使用self发出警告 警告: 块隐式保留“self”;明确提及“自我”以表示 这是故意的行为 当我们在变量名前面加上self->前缀时,警告就隐藏了 我读到在rmaddy的中直接调用variable&self->没有什么区别,这实际上是一个很好的警告,所以我可以看到他们在翻转标志。通常情况下,人们会意外地将自己保留在块中,形成保留周期。此警告通知开发人员您可能有一个可能的保留周期 基本上,如果你看到self,你就知道块在保留它,如果你没有看到self,你可能会第

为什么新的Xcode版本会对在块内使用self发出警告

警告:

块隐式保留“self”;明确提及“自我”以表示 这是故意的行为

当我们在变量名前面加上
self->
前缀时,警告就隐藏了


我读到在rmaddy的

中直接调用variable&self->没有什么区别,这实际上是一个很好的警告,所以我可以看到他们在翻转标志。通常情况下,人们会意外地将自己保留在块中,形成保留周期。此警告通知开发人员您可能有一个可能的保留周期


基本上,如果你看到
self
,你就知道块在保留它,如果你没有看到
self
,你可能会第一眼就认为你在使用一个局部变量。

这实际上是一个很好的警告,所以我可以看到他们在翻转标志。通常情况下,人们会意外地将自己保留在块中,形成保留周期。此警告通知开发人员您可能有一个可能的保留周期


基本上,如果你看到
self
,你就知道块在保留它,如果你没有看到
self
,你可能一眼就认为你在使用一个局部变量。

检查最后一个屏幕截图:它不是在以前版本的XCode上实现的,或默认设置为“否”,但较旧的xcode会显示访问属性值的警告。如果在
.m
文件中定义变量,旧的xcode不会显示警告。但是LLVM版本是什么?在XCode新版本中可能是不同的解析/检查。Apple LLVM 9.0。对正如@knightIdDragon的回答,它给了我们关于保留检查最后一个屏幕截图的明确警告:它不是在以前版本的XCode上实现的,就是在默认情况下设置为“否”,但旧的XCode显示了访问属性值的警告。如果在
.m
文件中定义变量,旧的xcode不会显示警告。但是LLVM版本是什么?在XCode新版本中可能是不同的解析/检查。Apple LLVM 9.0。对正如@knightIdDragon的回答,它给了我们关于保留的明确警告
@interface ViewController : UIViewController {
     NSString *myString;
}