Если объект подкласса NSManagedObject является объектом, представленным NSViewController, является ли это ошибкой?

в подклассе NSViewController этот BOOL возвращает в консоли "fault is (null)":

Submission *sub = [self representedObject];
BOOL fault = [sub isFault];
NSLog(@"fault is : %@", fault);

у меня есть свойства субуправляемого объекта, поэтому я знаю, что он доступен. тестирование с помощью commitValuesForKeys (прямо под приведенным выше в том же методе) дает мне ожидаемые значения свойств в консоли.

NSLog(@"[sub commitValuesForKeys:nil] is: %@", [sub commitValuesForKeys:nil]);

self здесь является NSCollectionViewItem, подклассом NSViewController.


person lulu    schedule 07.10.2011    source источник


Ответы (2)


Есть и другие более чистые способы сделать это:

BOOL fault = YES;
NSLog(fault ? @"Yes" : @"No");

и

BOOL fault = YES; 
NSLog(@"Bool fault: %d",fault);

через Как напечатать логический флаг в NSLog?

person RyanJM    schedule 01.04.2012
comment
спасибо, рянджм. это «более чистые» способы. поэтому я изменил согласие на ваш ответ. - person lulu; 02.04.2012
comment
Отлично, но каков ответ на вопрос? - person Elise van Looij; 30.09.2016
comment
Я на самом деле не уверен, какой правильный ответ. Я не занимаюсь Mac Dev. Я смог помочь только в том, как распечатать логическую информацию. @lulu ты помнишь, что ты узнал об этом? - person RyanJM; 04.10.2016

Вы не можете проверить значение BOOLs таким образом. Вместо этого выполните:

if (fault) {
   NSLog(@"Fault is true");
} else {
   NSLog(@"Fault is false");
}
person Toastor    schedule 07.10.2011
comment
спасибо, тостер. поэтому использование NSLog(@isFault: %@,([sub isFault] ? @YES : @NO) ); возвращает НЕТ для настройки моего приложения, которая использует объект collectionViewItem, представленный в привязке из NSArrayController. - person lulu; 08.10.2011
comment
Итак, ваша проблема не в том, чтобы определить, является ли это ошибкой или нет, а в том, что это на самом деле не является ошибкой? Если да, то есть ли у вас устаревшие значения для управляемого объекта? Если да, то пытались ли вы позволить контексту обновить управляемый объект? - person Toastor; 11.10.2011