Как обновить NSCollectionViewItem при изменении модели данных?

У меня есть NSArrayController, связанный с NSCollectionView. Моя модель данных - это класс Person. Inside Person - это таймер, который меняет возраст объекта каждую секунду. В моем NSCollectionViewItem у меня есть NSLabel, связанный с presentObject.age.

При запуске приложения на ярлыке будет отображаться начальное значение возраста, но оно не будет обновляться после изменения значения. Как я могу это сделать?

import Foundation

@objc(Person)
public class Person: NSObject
{
    public var firstName:String
    public var lastName:String
    public var age:Int

    var timer:NSTimer?

    override init()
    {
        self.firstName = "Max"
        self.lastName = "Meier"
        self.age = 33
        super.init()
        self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "tick", userInfo: nil, repeats: true)
        self.timer?.fire()
    }

    public func tick()
    {
        self.age++
        println(self.age)
    }
}

1 ответ

Решение

Привязки строятся поверх наблюдения значения ключа. Для того чтобы недвижимость в Свифте соответствовала КВО, она должна быть помечена dynamic, Итак, объявляем age как:

dynamic public var age:Int
Другие вопросы по тегам