Swift 3中的属性(@ IBOutlet,@ escaping,@ UIApplicationMain,@ available)

快速编码时,您可能在某处遇到了@符号,这意味着您遇到了一个属性 。 快速语言内置了属性,以提供有关声明或类型的更多信息。

由于它们是内置的,因此您无需编写自己的属性,尽管它们有时可以采用参数。 使用属性类似于使用关键字(即,类,var,协议)—它们具有非常特定的实用程序,但它们并不相同。 主要区别在于关键字告诉编译器您正在定义的内容,而属性则告诉编译器您正在使用它的上下文。

在此示例中,关键字“ var ”表示您要创建一个新变量,而属性“ @IBOutlet”表示您要将该变量与接口生成器同步。

@IBOutlet允许您将代码连接到情节提要 ,并在代码中更改UILabel的属性。

还可以应用其他三个属性,以允许不同的声明与接口生成器同步。 您可以在变量声明上使用@IBInspectable 以允许在检查器面板中查看和编辑变量。 @IBAction用于方法声明,以将方法功能连接到接口构建器中的对象。 最后, @ IBDesignable可以应用于类声明,以允许在界面生成器中呈现类属性,而无需运行模拟器。

请记住,所有这些属性都是特定于“界面”构建器的,因此仅适用于UIKit中的类型。

其他例子

有关swift提供的所有属性的完整列表,可以查看此页面。 我将在这里复习一些常见的知识。

如果在创建项目后查看AppDelegate.swift文件,应该会看到@UIApplicationMain属性应用于您的AppDelegate类。

请记住,属性可以应用于任何类型的声明,包括类声明。 此特定属性为您的应用程序创建一个入口点,并指定应用程序委托。 这等效于在main.swift文件中调用UIApplicationMain(_:_:_ 🙂