У меня есть статический фильтр для включения/выключения для NSArrayController на основе проверки флажка. Сейчас я связала значение флажок для этого:Включить предикат NSArrayController на основе флажка
private dynamic var filterPending: NSNumber! {
willSet {
willChangeValueForKey("filterPredicate")
}
didSet {
didChangeValueForKey("filterPredicate")
}
}
, а затем я связала фильтр из NSArrayController к этому:
private dynamic var filterPredicate: NSPredicate? {
guard let filter = filterPending?.boolValue where filter == true else { return nil }
return NSPredicate(format: "pending > 0")
}
Это, кажется, работает нормально, но чувствует, что может быть Мне не хватает более простого способа сделать это?
В ObjcC было бы '+ (NSSet *) keyPathsForValuesAffectingFilterPredicate {return [NSSet setWithObjects: @ "filterPending", nil]; } ', не знаю, как это переводится быстро. –
Я мог бы это сделать, а не filterPending. Я думал, что может быть более простой способ, чем иметь «вещь», скажем, что предикат нуждается в изменении, а другой - для предиката. В принципе, есть более чистый способ сделать это без двух элементов, выполняемых в коде. – Gargoyle