swift - weak var : test:UIView! 和 outlets 中的 weak var test :UIView? 有什么区别?

标签 swift profiling weak-references iboutlet

所以我正在尝试对我用 swift 编写的代码进行一些润色和分析。我有一堆问题很详细,通过搜索弱引用和强引用等主题很难找到它们。

例如,我没有看到 XCode 提示下面用于 socket 的任何一行。如果有人能解释在保持弱引用和内存管理方面有什么区别,我将不胜感激。

@IBOutlet weak var mapTab : MKMapView? 

@IBOutlet weak var mapTab : MKMapView! 

它只是解包还是改变了引用的性质?

最佳答案

后者是一个隐式展开的可选。无论何时使用它,您都可以将其视为自动隐式为您完成的强制解包。如果强制展开的值是 nil,这当然会崩溃。

前面的是一个常规的可选项,所以你必须自己明确地处理它的解包。您可以使用 guard letif let?? 等来处理它,或者您可以选择强制解包,明确地,这将行为类似于第一种情况。

关于swift - weak var : test:UIView! 和 outlets 中的 weak var test :UIView? 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40296430/

相关文章:

.net - 了解 ConditionalWeakTable

java - 具有弱引用的 ConcurrentHashmap

objective-c - 在 Swift 中访问 Objective-C 指针

ios - 如何使用 iOS Swift 在 Azure DB 中执行 SQL 字符串包含查询?

ios - swift : show another view controller on swipe up in first view controller

macos - 在 Mac 上安装 "perf"

linux - 在 Mac OS X 上是否有类似 Shark 的 Linux 类似工具?

ios - View 没有异步添加 subview Swift

c - 分析 Unix 中 C 语言中每个函数的内存使用情况

java - 是否有针对 Java 的弱引用写时复制集的开源实现?