Objective c 这个布尔比较正确吗?

Objective c 这个布尔比较正确吗?,objective-c,boolean,Objective C,Boolean,我有一个属性为布尔值的managedObject。我需要比较这个值,然后隐藏一个按钮,如果需要的话 有两个注意事项,首先可以设置isBookmarkHidden布尔值,它将覆盖managedObject的属性,因此不管怎样按钮都是隐藏的。如果此布尔值为否,则将使用ManagedObject 下面是viewDidLoad方法中的代码片段 BOOL shouldHideBookmark = (int)[[managedObject valueForKey:@"isBookmarked"] descr

我有一个属性为布尔值的managedObject。我需要比较这个值,然后隐藏一个按钮,如果需要的话

有两个注意事项,首先可以设置isBookmarkHidden布尔值,它将覆盖managedObject的属性,因此不管怎样按钮都是隐藏的。如果此布尔值为否,则将使用ManagedObject

下面是viewDidLoad方法中的代码片段

BOOL shouldHideBookmark = (int)[[managedObject valueForKey:@"isBookmarked"] description];

bookmarkButton.hidden = isBookmarkHidden == YES? YES : shouldHideBookmark == YES? YES : NO;

无论我如何编写这段代码,它似乎都不起作用。有什么想法吗?

没有,那是不对的

valueForKey:
返回一个对象,当它是布尔属性时,它是一个
NSNumber
。因此,它应该是:

BOOL shouldHideBookmark = [[managedObject valueForKey:@"isBookmarked"] boolValue];
bookmarkButton.hidden = (shouldHideBookmark || isBookmarkHidden);
另见: