Swift 中的基础对象只读 属性

readonly property for a foundation object in Swift

如何将 @property (readonly) NSDate *creationDate; 重构为 Swift 属性 结构?

struct structObject {

    var name: String
    var completed: Bool
    var creationDate: NSDate

}

属性 是否应该专门配置为 get 属性? Objective-C 中的代码是:

#import <Foundation/Foundation.h>

@interface ToDoItem : NSObject

@property NSString *itemName;
@property BOOL completed;
@property (readonly) NSDate *creationDate;

@end

有几种不同的方法可以做到这一点。

如果您希望它在创建时设置并且之后不更改,请使用 let 而不是 var

如果你想让它只被对象自己的方法改变,使用private(set)