所以我试图对我用swift编写的代码进行一些抛光和分析。我有一堆非常详细的问题,通过搜索弱和强引用等主题无法轻易找到它们。
例如,我没有看到XCode抱怨以下任何一个用于插座的线路。如果有任何人可以解释有什么区别,就保持弱引用和内存管理而言,我将不胜感激。
@IBOutlet weak var mapTab : MKMapView?
和
@IBOutlet weak var mapTab : MKMapView!
它只是展开还是改变了参考的性质?
答案 0 :(得分:1)
后者是隐式解包的可选项。无论什么时候使用它,您都可以将其视为一种力量展开,为您自动隐式完成。如果强制解包的值为nil
,这当然会崩溃。
早期版本是常规可选项,因此您必须明确地自行解包。您可以使用guard let
,if let
,??
等来处理它,或者您可以选择强制展开它,这与第一种情况类似。