2010-06-13 150 views
7

我剛剛學習Cocoa(來自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 

任何幫助將不勝感激,謝謝!

回答

20

在你的代碼,charsSinceLastUpdate指針,你需要定義它沒有*

int charsSinceLastUpdate = 0;

除非,當然,你意思將其定義爲一個指針,在這種情況下,您需要使用dereference operator來檢索它指向的值,如下所示:

if(*charsSinceLastUpdate >= 36) { 
    //... 
} 
+0

謝謝,我以爲*只是一個常見的命名約定 – 2010-06-13 08:06:10

相關問題