Прочитайте полученное сообщение:
2010-09-09 20:01:08.102 YM2612[12060:80f] Cannot create BOOL from object <_NSControllerObjectProxy: 0x34cd30> of class _NSControllerObjectProxy
Эта вещь не может быть преобразована в BOOL
. По-видимому, это selection
контроллера объекта, который является прокси, как говорит имя класса этого объекта.
Итак, почему что-то пытается преобразовать его в BOOL
? Для этого вы смотрите в трассировке стека:
4 AppKit 0x91ff0652 _NSBoolFromValue + 490
5 AppKit 0x920f226f -[_NSCheckBoxPlugin showValue:inObject:] + 144
6 AppKit 0x91fbdb69 -[NSValueBinder showValue:inObject:] + 384
7 AppKit 0x91fbd5b9 -[NSValueBinder _adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:] + 906
8 AppKit 0x91fbd1af -[NSValueBinder _observeValueForKeyPath:ofObject:context:] + 280
9 AppKit 0x91f379ad -[NSBinder _performConnectionEstablishedRefresh] + 85
10 AppKit 0x91f2a0b8 -[NSObject(NSKeyValueBindingCreation) bind:toObject:withKeyPath:options:] + 721
11 AppKit 0x91fd6003 -[NSNibBindingConnector establishConnection] + 156
12 AppKit 0x91f053f3 -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1249
Вы загружаете перо, и, как часть этого, оно подключает привязку, установленную в IB.
Итак, вы связали свойство, для которого требуется BOOL
, со свойством, значение которого не может быть преобразовано в BOOL
. Вам нужно взглянуть на перо (которое предполагает близость кадра 16 к кадру 17 - MainMenu.nib), чтобы увидеть, какие булевы свойства вы связали и с чем вы их связали, и связать то, что связано с контроллером selection
к чему-то, что имеет больше смысла.
Возможно, вы имели в виду привязку к selectedObjects
контроллера (который является массивом, а не прокси-объектом) с @count
в качестве пути ключа модели?
Связывания, которые вы, скорее всего, будете связывать, которые принимают логическое значение, составляют enabled
и editable
любого элемента управления (кнопка, текстовое поле, ползунок и т. Д.). Но они не единственные, поэтому вам нужно посмотреть на каждый объект, у которого есть привязка, которую вы связали, особенно если какие-либо привязки enabled
/ editable
, которые вы подключили, оказываются не виновники.