Сравнение между указателем и целым числом - PullRequest
7 голосов
/ 13 июня 2010

Я только изучаю Какао (из C #) и получаю странную ошибку за что-то, что кажется действительно простым. (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

Любая помощь будет оценена, спасибо!

1 Ответ

20 голосов
/ 13 июня 2010

В вашем коде charsSinceLastUpdate - это указатель , вам нужно определить его без *:

int charsSinceLastUpdate = 0;

Если, конечно, вы не имели в виду , чтобы определить его как указатель, в этом случае вам нужно будет использовать оператор разыменования для получения значенияна что он указывает, вот так:

if(*charsSinceLastUpdate >= 36) {
   //...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...