这与ARC如何管理对象的内存有关。使用var会定义对该对象的强引用,而使用weak var则会定义对该对象的弱引用。只要仍然存在一个或多个strong reference指向某个对象,那么该对象就会一直保存在内存中。使用weak reference允许您持有对对象的引用,而不增加其“保留计数”(retain count)。如果没有其他东西保持对你的weak var的引用,那么对象将被释放,你的weak var将会变成nil1。当你只使用var时,这种情况不会发生,因为它会定义对对象的强引用,这应该会防止它被释放。这与Objective-C中的“强”和“弱”的工作方式完全相同,我建议您阅读这个回答,因为它完全适用于Swift。 1作为一个Swift特定的注意事项,这是为什么任何声明为weak var的东西必须是可选类型的原因。