IOS开发---OC语言-㉕ autoreleased的应用

//
//  main.m
//  autoreleased的应用

#import <Foundation/Foundation.h>
#import "Person.h"
#import "GoodPerson.h"

/*
 1.系统自带的方法里面没有包含alloc、new、copy,说明返回的对象都是autorelease的
 
 2.开发中经常会提供一些类方法,快速创建一个已经autorelease过的对象
 1> 创建对象时不要直接用类名,一般用self
 + (id)person
 {
    return [[[self alloc] init] autorelease];
 }
 */

int main()
{
    @autoreleasepool {
        Person *p = [Person personWithAge:100];
        
        
        GoodPerson *p2 = [GoodPerson personWithAge:10];
        
        p2.money = 100;
    }
    return 0;
}

void test()
{
    Person *p = [[Person alloc] init];
    
    p.age = 200;
    
    [p release];
    
    // 包
    // Student com.mj.test
    // Student com.mj.test2
    
    // MJStudent
    
    // SBStudent
    
    // Next Step
    
    
    @autoreleasepool
    {
        //        Person *p2 = [Person person];
        //
        //        p2.age = 100;
        
        Person *p2 = [Person personWithAge:100];
        
        //        Person *p2 = [[[Person alloc] init] autorelease];
        //
        //        p2.age = 300;
        
        
        NSString *str = @"123123";
        
        NSString *str2 = [NSString stringWithFormat:@"age is %d", 10];
        
        NSNumber *num = [[NSNumber alloc] initWithInt:10];
        [num release];
        
        
        NSNumber *num2 = [NSNumber numberWithInt:100];
    }
}
/*
 文件名:Person.h
 */
#import <Foundation/Foundation.h>

@interface Person : NSObject
@property (nonatomic, assign) int age;


+ (id)person;

+ (id)personWithAge:(int)age;

@end

/*
 文件名:Person.m
 */

#import "Person.h"

@implementation Person


+ (id)person
{
    return [[[self alloc] init] autorelease];
}


+ (id)personWithAge:(int)age
{
    Person *p = [self person];
    p.age = age;
    return p;
}

- (void)dealloc
{
    NSLog(@"%d岁的人被销毁了", _age);
    
    [super dealloc];
}
@end

/*
 文件名:GoodPerson.h
 */
#import "Person.h"

@interface GoodPerson : Person

@property (nonatomic, assign) int money;

@end

/*
 文件名:GoodPerson.m
 */

#import "GoodPerson.h"

@implementation GoodPerson

@end


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值