objective c 语法系列之--Class level access

来源:互联网 发布:求剑若此不亦惑乎 编辑:程序博客网 时间:2024/05/01 00:14

需求:当你计算一个对象被instance几次时,通常有class level variables以及class level  functions为你提供解决方案。

ClassA.h

#import <Foundation/NSObject.h>static int count;@interface ClassA:NSObject+(int)  initCount;+(void) initialize;@end

ClassA.m@implementation ClassA-(id)  init    {      self = [super init];      count++;      return self;   }   //回传count值,注意class method+(int)  initCount  {      return count;  }+(void) initialize  //在程序开始执行是被呼叫,而且也被每个class呼叫  {      count=0;  }

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;} 



原创粉丝点击