OC中静态构造和动态构造的区别

Student.h:

#import <Foundation/Foundation.h>  @interface Student : NSObject  @property(nonatomic,retain) NSString * name;  @property(nonatomic,assign) int age;  @end

Student.m:

#import "Student.h"  @implementation Student  //动态方法,在main函数中类alloc了之后调用,但是要手动管理内存,要手动释放  -(id) initWithAge:(int)age{      if (self == [super init]) {          _age = age;      }      return self;  }     //静态构造方法,在main函数中不需要你手动管理内存释放  +(id)studentWithAge:(int)age{      Student *stu = [[[Student alloc] init] autorelease];\      stu.age = age;      return stu;  }     -(NSString *)description{      return [NSString stringWithFormat:@"name:%@ age:%i创建了",_name,_age];  }     -(void)dealloc{      NSLog(@"name:%@ age:%i被释放了",_name,_age);      [_name release];      [super dealloc];  }  @end 

  

main

 

 1 #import <Foundation/Foundation.h>  2   3 #import "Student.h"  4   5 int main(int argc, const char * argv[])  6   7 {  8   9     @autoreleasepool { 10  11         //动态方法需要手动释放内存 12  13         Student *stu1= [[Student alloc] initWithAge:10]; 14  15         stu1.name = @"dingxiaowei"; 16  17         NSLog(@"%@",stu1); 18  19         [stu1 release]; 20  21         //静态构造方法不需要你管理内存 22  23         Student *stu2 =[Student studentWithAge:20]; 24  25         stu2.name = @"wangning"; 26  27         NSLog(@"%@",stu2); 28  29     } 30  31     return 0; 32  33 } 

 

  

 

结果:

OC对象的动态和静态构造区别 - 蓬莱仙羽 - 蓬莱仙羽

 






















本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366487,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值