2009-07-02 19 views
10

我正在使用KVC來遍歷幾個視圖。遇到問題設置BOOL屬性:如何在Cocoa/Obj-C中包裝KVC的BOOL?

[self setValue:YES forKeyPath:[NSString stringWithFormat:@"myView%d.userInteractionEnabled", n]]; 

我得到:警告:傳遞的參數1 '的setValue:forKeyPath:' 時將整數指針不進行強制轉換。

沒有[NSValue valueWithBool:YES]或類似的,我可以找到。

怎麼辦?

回答

29

由於第一個參數-setValue:forKeyPath:期望和對象,編譯器正在生成警告。 YES不是一個對象。

答案是正確的,在 「NSValue.h」:

的Xcode

[NSNumber numberWithBool: aBool]

後來的版本允許你使用的文字語法:

[foo setValue:@YES forKey:@"bar"]

1

您還可以使用直接表達式 @(YES)

欲瞭解更多信息 llvm Objective-C Literals

+2

括號是可選的,`@ YES`可以正常工作 – 2013-08-20 13:00:02

相關問題