这个布尔比较是否正确?

时间:2010-08-28 15:29:21

标签: objective-c boolean

我有一个带有属性布尔值的managedObject。我需要比较它的值,然后在需要时隐藏一个按钮。

有几点需要注意,首先可以设置isBookmarkHidden布尔值,并覆盖托管对象的属性,以便隐藏按钮。如果此布尔值为NO,则它将使用ManagedObject。

以下是viewDidLoad方法中的代码片段...

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

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

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

1 个答案:

答案 0 :(得分:8)

不,这不正确。

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

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