【问题标题】:How do you wrap up a BOOL for KVC in Cocoa/Obj-C?你如何在 Cocoa/Obj-C 中为 KVC 封装一个 BOOL?
【发布时间】:2010-11-07 19:07:12
【问题描述】:

我正在使用 KVC 来迭代几个视图。设置 BOOL 属性时遇到问题:

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

我得到:警告:传递 'setValue:forKeyPath:' 的参数 1 使指针从整数而不进行强制转换。

我找不到 [NSValue valueWithBool:YES] 或类似的东西。

怎么办?

【问题讨论】:

    标签: objective-c cocoa cocoa-touch key-value-coding


    【解决方案1】:

    编译器正在生成警告,因为-setValue:forKeyPath: 的第一个参数期望和对象。 YES 不是对象。

    答案就在“NSValue.h”中:

    [NSNumber numberWithBool: aBool]

    更高版本的 Xcode 允许您使用文字语法:

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

    【讨论】:

      【解决方案2】:

      你也可以使用文字表达 @(是)

      更多信息 llvm Objective-C Literals

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多