2013-09-03 3 views
0

i новый в Object-C. Я хочу знать, как определить статическую переменную класса. я код, основанный на одной книге так:Как определить статическую переменную класса в Object-C?

static int count = 0; // staic class variable 
@interface ClassA : NSObject{ 
} 

+(int) initCount; 
+(void) initialize; 
@end 

@implementation ClassA 

-(id) init{ 
    if(self = [super init]){ 
     count++; 
    } 
    return self; 
} 

+(int) initCount{ 
    return count; 
} 

+(void) initialize{ 
    count = 0; 
} 
@end 

вы знаете, переменная count не ClassA, я мог определить staic переменную класса, как C++? в C++, можно определить следующим образом:

@interface ClassA : NSObject{ 
static int count; 
} 

ответ

2

Все, что вы сделали хорошо выглядит, но вы должны объявить статическую переменную в реализации (.m файла).

Таким образом, вы будете иметь что-то вроде:

@interface ClassA:NSObject 
+(int) initCount; 
@end 
// ClassA.m 
static int count = 0; 
@implementation 
+(int) initCount{ 
    return count; 
} 
@end 

Objective-C не имеет «класса переменных», но делать это, как это вы создаете переменную класса псевдо.

+0

@BlackMamba: Было бы очень приятно, если бы вы начали «принимать» полезные ответы. Просто нажмите на галочку! –

+0

@MartinR Я не могу найти «галочку» на этой странице? Не могли бы вы мне сказать ? – BlackMamba

+0

@BlackMamba: Посмотрите на http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235. Слева от ответа должна быть отметка. –