У вас есть прекрасный набор ответов, сфокусированных на переключении ДА на НЕТ или наоборот, но нет ответов , которые затронули то, что в коде представляется архитектурной проблемой.
Ну, некоторые ответы.Я слепой.
А именно, у вас есть это:
objectWithLongishName.memberWithLongishName.submember.myBOOL =
!(objectWithLongishName.memberWithLongishName.submember.myBOOL);
Это пахнет как потенциальное нарушение инкапсуляции.В частности (и предполагая, что это уровень модели), это означает, что связность подграфа объектов открыто выставляется - фактически сглаживается - точкой входа этого пути;независимо от того, что objectWithLongishName
должно теперь иметь достаточно глубокие знания внутренних объектов на остальной части пути.
Как правило, вы не заходите глубоко в слой модели вдоль ключевых путей, чтобы редактировать состояние внеслой Cocoa Bindings (и даже немного хрупкий).
Иногда такие длинные пути имеют смысл.В таком случае я бы оставил у вас более многословную форму, как у вас выше, в качестве визуального указания на то, что инкапсуляция целенаправленно уничтожается.