Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Comparison between pointer and integer

I'm just learning Cocoa (coming from C#) and I'm getting a strange error for something that seems really simple. (charsSinceLastUpdate >= 36)

#import "CSMainController.h"

@implementation CSMainController
//global vars
int *charsSinceLastUpdate = 0;
NSString *myString = @"Hello world";
//

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
...
}

//other functions
- (void)textDidChange:(NSNotification *)aNotification {
    NSLog(@"charsSinceLastUpdate=%i",charsSinceLastUpdate);
    if (charsSinceLastUpdate>=36) { // <- THIS line returns the error: Comparison between pointer and integer
        charsSinceLastUpdate=0;
        [statusText setStringValue:@"Will save now!"];
    } else {
        charsSinceLastUpdate++;
        [statusText setStringValue:@"Not saving"];
    }

}

//my functions
- (void)showNetworkErrorAlert:(BOOL)showContinueWithoutSavingOption {
...
}
//

@end

Any help would be appreciated, thanks!

like image 819
N S Avatar asked Jun 13 '10 07:06

N S


1 Answers

In your code, charsSinceLastUpdate is a pointer, you need to define it without the *:

int charsSinceLastUpdate = 0;

Unless, of course, you meant to define it as a pointer, in which case you'd need to use the dereference operator to retrieve the value that it's pointing to, like so:

if(*charsSinceLastUpdate >= 36) {
   //...
}
like image 122
Jacob Relkin Avatar answered Sep 21 '22 00:09

Jacob Relkin