这个布尔比较是否正确?

Lee*_*ert 2 boolean objective-c

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

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

这是在viewDidLoad方法中的代码片段...

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

bookmarkButton.hidden = isBookmarkHidden == YES? YES : shouldHideBookmark == YES? YES : NO;
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ong 8

不,那不对.

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

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