博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oc54--auatorelease应用场景
阅读量:6857 次
发布时间:2019-06-26

本文共 1887 字,大约阅读时间需要 6 分钟。

////  Person.h#import 
@interface Person : NSObject@property (nonatomic, assign) int age;+ (instancetype)person;- (instancetype)initWithAge:(int)age;+ (instancetype)personWithAge:(int)age;@end
//  Person.m#import "Person.h"@implementation Person//提供构造方法的时候也要提供类工厂方法(API里面是这么写的),如果是MRC还要提供antorelease.+ (instancetype)person  //类工厂方法{    return [[[self alloc] init] autorelease];}- (instancetype)initWithAge:(int)age{ //构造方法    if (self = [super init]) {        _age = age;    }    return self;}+ (instancetype)personWithAge:(int)age //类工厂方法{    /*    Person *p = [[self alloc] init];    p.age = age;    return [p autorelease];    */    return [[[self alloc] initWithAge:age] autorelease];  //self = Person;}- (void)dealloc{    NSLog(@"%s", __func__);    [super dealloc];}@end
////  main.m//  auatorelease应用场景#import 
#import "Person.h"int main(int argc, const char * argv[]) { @autoreleasepool { Person *p = [[[Person alloc] init] autorelease]; p.age = 10; NSLog(@"age = %i", p.age); Person *p1 = [[[Person alloc] init] autorelease]; Person *p2 = [[[Person alloc] init] autorelease]; Person *1p = [Person person]; 1p.age = 10; NSLog(@"age = %i", 1p.age); // 注意: Foundation框架的类, 但凡是通过类工厂方法创建的对象都是autorelease的 [[NSString alloc] init]; [NSString string]; // [NSString alloc] initWithString:(NSString *)// [NSString stringWithString:(NSString *)]; Person *p = [[[Person alloc] initWithAge:10] autorelease]; NSLog(@"age = %i", p.age); Person *p = [Person personWithAge:10]; NSLog(@"age = %i", p.age); } return 0;}

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7429029.html,如需转载请自行联系原作者
你可能感兴趣的文章
设计ShartPoint的组织结构和成员
查看>>
shell编程入门步步高(一、shell简介)
查看>>
一个简单的HQL优化
查看>>
从股价说起 百神大战凸现百度与腾讯阿里差距
查看>>
MariaDB六之主从复制
查看>>
outlook cannot send this item
查看>>
【Win7下Android native code的编译和调试】
查看>>
【iOS-cocos2d-X 游戏开发之十】自定义各类模版&触屏事件讲解!
查看>>
域环境下如何保护重要资料文件的安全(二)---IRM&RMS(下)
查看>>
服务器升迁架构.png
查看>>
不能联系xx域的域控制器
查看>>
生产网络做portfast等配置对网络的影响
查看>>
Connection is read-only. Queries leading to data modification are not allowed
查看>>
LeetCode - 43. Multiply Strings
查看>>
sublime text3侧边栏主题不生效问题解决
查看>>
System Center 2016 - Operations Manager 部署安装(二)
查看>>
ubuntu设置静态ip不能联网
查看>>
Outlook 2010上的定时发送邮件
查看>>
让server08域数据超速再生秘技之数据库快照[为企业部署Windows Server 2008系列八]...
查看>>
【算法】算法中的趣味数学(一)
查看>>