DarkLeafyGreen
DarkLeafyGreen

Reputation: 70466

Pointer from integer without a cast issue

in my .h file I defined:

BOOL *internetActive;
BOOL *hostActive;

and:

@property(nonatomic) BOOL *internetActive;
@property(nonatomic) BOOL *hostActive;

In my .m file I synthesize them and set the values:

   switch (internetStatus) {
        case NotReachable:{
            self.internetActive = NO;
            break;
        }
        case ReachableViaWiFi:{
            self.internetActive = YES;
            break;
        }
        case ReachableViaWWAN:{
            self.internetActive = YES;
            break;
        }
    }

but I get several warnings. First on every = YES I get

Incompatible integer to pointer conversion to BOOL (aka signed char) from BOOL (aka signed char)

And right after the break statement I get an:

Passing argument 1 of setInternetActive makes pointer from integer without a cast

What does that mean and how do I solve it?

Upvotes: 0

Views: 1836

Answers (2)

Konrad77
Konrad77

Reputation: 2535

If you really want to have a pointer to an object, so you can store them in NSArray/NSDictionary then use NSNumber.

@property(nonatomic, retain) NSNumber *internetActive;
@property(nonatomic, retain) NSNumber *hostActive;

In your *.m

switch (internetStatus) {
        case NotReachable:{
            self.internetActive = [NSNumber numberWithBool:NO];
            break;
        }
        case ReachableViaWiFi:{
            self.internetActive = [NSNumber numberWithBool:YES];;
            break;
        }
        case ReachableViaWWAN:{
            self.internetActive = [NSNumber numberWithBool:YES];;
            break;
        }
    }

Upvotes: 0

Kshitiz Ghimire
Kshitiz Ghimire

Reputation: 1716

it is BOOL internetActive not BOOL *internetActive;

good luck

Upvotes: 3

Related Questions