具有'iboutlet'属性的属性必须是对象类型(无效'BOOL'(又名'signed char'))

时间:2012-06-24 09:08:50

标签: objective-c cocoa nib

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

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

在更新之前它完全正常工作。 有关如何修复的提示吗?

4 个答案:

答案 0 :(得分:6)

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

#import <MapKit/MapKit.h>

答案 1 :(得分:5)

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

答案 2 :(得分:0)

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

据我所知,有了新的SDK,很多东西都会被弃用,而且事情也无法正常运行。这就是我讨厌使用beta的原因!

答案 3 :(得分:0)

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