在Objective-C:如何在不觸發didSet觀察者的情況下在Swift類的內部方法中設置屬性?
@interface User : NSObject
@property (nonatomic, strong) NSString *name;
- (void)setName:(NString *newName) {
_name = newName
NSLog("newName = %@", newName);
}
User *user = [[User alloc] init];
user.name = @"Test"; // Call setName method and log "newName = Test"
但在用戶類的內部方法:
_name = "Test"; // Don't call setName
在夫特:
class User : NSObject
var name: String {
didSet {
print("newName = " + name)
}
}
如何在內部方法集名User類沒有觸發didSet觀察者?像Objective-C中的_name = @"Test"
一樣?
'「沒有確切的比喻。」我傾向於不同意。我的答案*中的例子與您在聲明「@屬性」時在Objective-C中得到的內容完全類似。它只需要更多的代碼在Swift中。但事實證明,在大多數情況下,'willSet'或'didSet'實際上就是所有需要的。 – nhgrif
你是對的;我會更新。 –