在@ swift中@ property/@ synthesize等效

Mut*_*awe 39 objective-c ios swift ios8

我们曾经声明property在类之间传递数据如下:

.h file (interface file)
@property (nonatomic) double topSpeed;

.m file (implementation file)
@synthesize topSpeed;
Run Code Online (Sandbox Code Playgroud)

现在没有interface类,如何在.swift类之间传递数据?

Cez*_*zar 54

Swift不提供属性和实例变量之间的区别(即属性的底层存储).要定义属性,只需在类的上下文中声明变量即可.

swift类只是一个ClassName.swift文件.

您将类和属性声明为

class SomeClass {

  var topSpeed: Double
  var aStrProperty: String
  var anIntProperty: Int

  //Initializers and other functions

}
Run Code Online (Sandbox Code Playgroud)

您可以通过点表示法访问属性值.从Xcode6 beta 4开始,Swift中还有访问修饰符(public,internalprivate).默认情况下每个属性都是internal.有关更多信息,请参见此处

有关更多信息,请参阅Swift编程指南:

存储的属性和实例变量

如果您有使用Objective-C的经验,您可能知道它提供了两种方法来存储值和引用作为类实例的一部分.除了属性之外,还可以使用实例变量作为存储在属性中的值的后备存储.

Swift将这些概念统一到一个属性声明中.Swift属性没有相应的实例变量,并且不直接访问属性的后备存储.这种方法避免了在不同的上下文中如何访问值的混淆,并将属性的声明简化为单个明确的语句.有关属性的所有信息(包括其名称,类型和内存管理特征)都在单个位置定义,作为类型定义的一部分.


tro*_*foe 13

使用属性.

Swift编程指南:

存储的属性和实例变量

如果您有使用Objective-C的经验,您可能知道它提供了两种方法来存储值和引用作为类实例的一部分.除了属性之外,还可以使用实例变量作为存储在属性中的值的后备存储.

Swift将这些概念统一到一个属性声明中.Swift属性没有相应的实例变量,并且不直接访问属性的后备存储.这种方法避免了在不同的上下文中如何访问值的混淆,并将属性的声明简化为单个明确的语句.有关属性的所有信息(包括其名称,类型和内存管理特征)都在单个位置定义,作为类型定义的一部分.