【问题标题】:@property @synthesize equivalent in swift@property @synthesize 在 swift 中等效
【发布时间】:2015-06-10 06:58:55
【问题描述】:

我有类似的东西

@property(nonatomic,retain) UIImageView *whiteBfFillUp;
@end

@synthesize locationManager;

我是快速编码的新手。谁能告诉我swift中的等效代码。

【问题讨论】:

  • 您的 Objective-C 学习资源有哪些?它们似乎已经过时了,因为自 2012 年左右起就不再需要 @synthesize。此外,应该使用 strong 而不是 retain
  • var whiteBfFillUp: UIImageView?
  • 是的,这不是现代 Objective-c。 Now-a-days @synthesize 会自动为您完成。但是@Vladimir S 说的就是这样的快速等价物。
  • 这段代码是很久以前写的。无论如何感谢您的回复。

标签: ios swift


【解决方案1】:

没有等价物。
在 Swift 中,当您在类或结构声明中编写 varlet 时,您已经声明了一个属性。

定义属性以存储值

这是写在 Swift 文档中的内容。 如果您担心访问控制,可以使用privatepublic 修饰符。

public var somePublicVariable = 0

如果您想像在 Objective-C 中那样覆盖属性,您会发现有用的属性观察器,例如 didSet{} willSet{}
如果您需要一个只读属性,您可以将 setter 设为私有。

public private(set) var hours = 0

【讨论】:

    【解决方案2】:

    如果您只是在寻找等价的属性,那么您只需要创建您的类级别变量。默认情况下,所有类级别变量都是“强”或“保留”。但是,如果您希望它们变弱,请使用weak

    这就像

    var whiteBfFillUp: UIImageView? = nil

    末尾的? 表示这是一个可选类型。如果不是,则需要在 init 方法中或在此处为其分配一些值。

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      相关资源
      最近更新 更多