"+" Of Object-C is similar to static functions in C ++. It can access variables declared by static. Example:
1. Code:
// Classa. h
# Import <Foundation/nsobject. h>
Static int count;
@ Interface classa: nsobject
+ (INT) initcount;
+ (Void) initialize;
@ End
/// Classa. m
# Import "classa. H"
@ Implementation classa
-(ID) Init {
Self = [Super init];
Count ++;
Return self;
}
+ (INT) initcount {
Return count;
}
+ (Void) initialize {
Count = 0;
}
@ End
// Main. m
# Import "classa. H"
# Import <stdio. h>
Int main (INT argc, const char * argv []) {
Classa * C1 = [[classa alloc] init];
Classa * C2 = [[classa alloc] init];
// Print count
Printf ("classa count: % I \ n", [classa initcount]);
Classa * C3 = [[classa alloc] init];
// Print count again
Printf ("classa count: % I \ n", [classa initcount]);
[C1 release];
[C2 release];
[C3 release];
Return 0;
}
Running result:
Classa count: 2
Classa count: 3
2. Description:
(1) initialize is automatically called and called only once;
(2) initcount can access count.