Swift:初始化程序内存问题

时间:2018-09-28 20:51:42

标签: ios swift

我是迅速的新手,只是一个基本问题:

let test: UITableView?

let test = UITableView()

这两个表视图之间有什么区别。其中一个或任何缺点是否存在任何内存问题?

3 个答案:

答案 0 :(得分:3)

第一个不是表格视图。它是对表视图的引用,没有值(nil)。实际没有表格视图。

这是一个非常基本/普遍的问题。如果您只阅读the Swift Programming Language Guide,将会获得更快/更轻松的学习进度。

答案 1 :(得分:2)

  

这两个表格视图有什么区别

let test: UITableView?

let test = UITableView()

第一行是声明,您在其中告诉编译器test是对表视图的可选引用。

第二行结合了声明和赋值。 UITableView()部分是实际上创建表视图对象的初始化程序。然后将该对象分配给test。请注意,在这种情况下,您没有明确指定类型,因此编译器会根据您要分配的事物的类型来推断类型,因此此处的test的类型将是UITableView而不是UITableView?,也就是说它将不是可选的。如果需要,可以指定类型一步分配所有值,如下所示:

var test : UITableView? = UITableView()

我在这里使用var是因为test被声明为可选事实,这意味着它的值以后可能会变为nil。

答案 2 :(得分:1)

后跟: TYPE的变量或常量意味着它创建了一个适合于存储该类型引用的存储位置。这是声明

let test: UITableView?

使用= REFERENCE()分配,您可以在其中创建一个存储位置来保存对对象的引用。

let test = UITableView()

此类型是隐式推断的,但是您仍然可以通过组合两者来显式创建该类型:

let test: UITableView = UITableView()

请参见Swift文档中的 The Basics

如果某些信息不正确或不正确,请纠正我