一尘不染

相当于@ property / @ synthesize

swift

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

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

.m file (implementation file)
@synthesize topSpeed;

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


阅读 230

收藏
2020-07-07

共1个答案

一尘不染

Swift不区分属性和实例变量(即属性的基础存储)。要定义属性,只需在类的上下文中声明一个变量。

swift类只是ClassName.swift文件。

您将一个类和属性声明为

class SomeClass {

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

  //Initializers and other functions

}

您可以通过点表示法访问属性值。作为Xcode6测试4的,也有访问修饰符(publicinternalprivate在SWIFT)。默认情况下,每个属性都是internal有关更多信息,请参见此处

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

存储的属性和实例变量

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

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

2020-07-07