У меня есть свойство объекта класса с именем object, а - логическая переменная readonly с именем isEmpty. Если для свойства объекта задан некоторый объект, свойство isEmpty переключается на значение false, и если объект установлен как nil, isEmpty устанавливается как true. Я могу достичь этого, используя Objective-C следующим образом:Установить зависимую переменную свойства с помощью настраиваемого метода настройки для объекта в Swift
@interface SomeObject: NSObject
@property (nonatomic, strong) id object;
@property (nonatomic, assign, readonly) BOOL isEmpty;
@end
@implementation SomeObject
- (void)object:(id)object {
_isEmpty = NO;
_object = object;
}
- (id)object {
return _object;
}
- (void)clearObject {
_object = nil;
_isEmpty = YES;
}
@end
Как я могу подражать этому в Swift 2.2? До сих пор я пробовал
class SomeObject: NSObject {
public private(set) var isEmpty: Bool
var nodeObject: AnyObject? = {
get {
isEmpty = false
return object
}
set(_object: AnyObject) {
object = _object
}
}
}
Но он не работает, как и ожидалось! Я знаю, что это неправильно, но не уверен в какой части!
ТИА
Сделайте 'nodeObject' a * optional * и удалите другие вещи ... –
@MartinR Спасибо! – Shabib