error: property 'myBoolVariableName' with 'retain' attribute must be of object type

error: property 'myBoolVariableName' with 'retain' attribute must be of object type

I have a BOOL value inside my @interface definition in my .h file. Here it is below. It has the same problem whether it's a pointer or not.

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

When I compile, I get "error: property 'myBoolVariableName' with 'retain' attribute must be of object type" on the line for the import of my .h file.

I found this page here about an integer / nsnumber:

So, it seems I can't use BOOL values inside an @interface definition. What can I use instead?

What should I do for BOOL / boolean values?

How to lose margin/padding in UITextView?


Creating a PHP Webservice with binary-encoded parameters?
I'm guessing that later in your interface you have something like this:.
Is there an iPhone SDK API for twitter? [closed]
@property (retain) BOOL *myBoolVariableName; 
That means make a property who's value is a pointer to a BOOL, and use retain semantics..
iPhone Safari: Scroll a list inside a html container
Your problem is that BOOL * is a pointer to a byte of memory, not a pointer to an object.

iphone: making a new UIImage from data from an XML document
And retain is something that applies only to objects..
What's the best way of learning iPhone programming when coming from Java?
Here's how you can make a BOOL property..
-didSelectRowAtIndexPath: not being called
@interface myCustomViewController : UIViewController <UIWebViewDelegate> {     BOOL myBoolVariableName; }  @property myBoolVariableName;  @end 
The important differences are that the variable is declared as "BOOL", not "BOOL *" and the property doesn't have (retain)..
Why do I have to clean up memory if I have an IBOutlet with “retain”, but not when I have one with “assign”?


I have faced similar situation.

I solved it like,.
@interface myCustomViewController : UIViewController { BOOL myBoolVariableName; } @property BOOL myBoolVariableName; @end 
I refer one answer by Jon Hess but I got one error in it.

Type name requires a specifier or qualifier.

My previous version was like,.
@property myBoolVariableName; 
So I added BOOL and solved the issue..

70 out of 100 based on 80 user ratings 430 reviews