【问题标题】:Property with 'iboutlet' attribute must be an object type (invalid 'BOOL' (aka 'signed char'))具有“iboutlet”属性的属性必须是对象类型(无效的“BOOL”(又名“签名字符”))
【发布时间】:2012-06-24 09:08:50
【问题描述】:

将我的项目更新到 10.7 SDK 并切换调试器后, 我收到了这条消息:

Property with 'iboutlet' attribute must be an object type (invalid 'BOOL' (aka 'signed char'))

在更新之前它运行良好。 有关如何解决此问题的任何提示?

【问题讨论】:

    标签: objective-c cocoa nib


    【解决方案1】:

    你必须导入地图框架(MapKit/MapKit.h)

    #import <MapKit/MapKit.h>
    

    【讨论】:

      【解决方案2】:

      如果您为组件使用自定义类(即从 UI* 子类化),请记住您需要为您的类导入 .h 文件,这样您的属性指针就不仅仅是编译器的 (id)。

      【讨论】:

      • 你说得对,我正在使用#import "BOValidationTextField.h"。我已经在课堂上导入了这个 .h 文件。
      【解决方案3】:

      尝试取消链接并再次链接 IBOutlet,或尝试将 boolValue 分配给持有该对象的变量。

      据我所知,使用新的 SDK,许多东西都已被弃用,并且无法正常工作。这就是为什么我讨厌使用测试版!

      【讨论】:

        【解决方案4】:

        IBOutlets 总是对象,它们是在 xibs/nibs 中引用的值,你不能用标量值真正做到这一点。如果您需要设置布尔值,那么您可以在对象的 -awakeFromNib 方法中调用 setter,或者根据您正在执行的操作:kvo 或委托可能是合适的。

        【讨论】:

          猜你喜欢
          • 2020-03-27
          • 1970-01-01
          • 2016-01-23
          • 1970-01-01
          • 2010-11-23
          • 1970-01-01
          • 1970-01-01
          • 2021-03-09
          • 1970-01-01
          相关资源
          最近更新 更多