当前位置:  开发笔记 > Android > 正文

错误:带有'retain'属性的属性'myBoolVariableName'必须是对象类型

如何解决《错误:带有'retain'属性的属性'myBoolVariableName'必须是对象类型》经验,为你挑选了1个好方法。

我的.h文件中的@interface定义中有一个BOOL值.它在下面.它是否是一个指针也有同样的问题.

@interface myCustomViewController : UIViewController  {
{
 //...more iboutlets defined above
 BOOL *myBoolVariableName;
}

当我编译时,我得到"错误:属性'myBoolVariableName','retain'属性必须是对象类型",用于导入我的.h文件.

我在这里找到了一个关于整数/ nsnumber的页面:

http://discussions.apple.com/thread.jspa?threadID=1846927

所以,似乎我不能在@interface定义中使用BOOL值.我可以用什么呢?

我应该怎么做BOOL /布尔值?



1> Jon Hess..:

我猜你以后在你的界面中有这样的东西:

@property (retain) BOOL *myBoolVariableName;

这意味着创建一个属性,其值是指向BOOL的指针,并使用retain语义.

您的问题是BOOL*是指向内存字节的指针,而不是指向对象的指针.保留只适用于对象.

以下是制作BOOL属性的方法.

@interface myCustomViewController : UIViewController  {
    BOOL myBoolVariableName;
}

@property myBoolVariableName;

@end

重要的区别是变量声明为"BOOL",而不是"BOOL*",属性没有(保留).


我不得不这样做,但除此之外,你已经死了.:) 谢谢.@property BOOL myBoolVariableName;
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有