我有一个带有属性布尔值的managedObject。我需要比较它的值,然后在需要时隐藏一个按钮。
有几点需要注意,首先可以设置isBookmarkHidden布尔值,并覆盖托管对象的属性,以便隐藏按钮。如果此布尔值为NO,则它将使用ManagedObject。
以下是viewDidLoad方法中的代码片段...
BOOL shouldHideBookmark = (int)[[managedObject valueForKey:@"isBookmarked"] description];
bookmarkButton.hidden = isBookmarkHidden == YES? YES : shouldHideBookmark == YES? YES : NO;
无论我如何编写此代码,它似乎都不起作用。有什么想法吗?
答案 0 :(得分:8)
不,这不正确。
valueForKey:
返回一个对象,当它是一个布尔属性时,它是一个NSNumber
。所以它应该是:
BOOL shouldHideBookmark = [[managedObject valueForKey:@"isBookmarked"] boolValue];
bookmarkButton.hidden = (shouldHideBookmark || isBookmarkHidden);