Хотя я искал много информации о Cocoa Bindings, я по-прежнему остаюсь относительно неудовлетворенным информацией, которую я получил и получил. Кажется, что тема несколько хлопотная, потому что многие и многие просто избегают этой картины, которой, я считаю, не должно быть.
Конечно, может показаться, что привязки иногда слишком сложны или, возможно, разработаны со слишком большими накладными расходами...
Однако у меня есть один очень прямой и конкретный вопрос: зачем нужен NSObjectController, если я могу установить привязки напрямую?
Например, код:
[controller bind:@"contentObject" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
[slicesTextField bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
[stepperControl bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
Точно так же, как:
[slicesTextField bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
[stepperControl bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
В моем случае здесь мы говорим о свойстве класса, внутри которого все происходит, поэтому я предполагаю, что необходимость NSObjectController заключается в следующем:
-
ключевой путь для контроллера - это объект, а привязка других элементов управления необходима для его свойств, а не его значение, как в случае с примитивами и оболочками вокруг них (numberOfPiesSlices в моем случае - NSInteger)
-
или когда привязка требуется от других внешних объектов, а не только между объектами внутри одного
Кто-нибудь может подтвердить или отклонить это?