【发布时间】:2010-12-07 00:23:34
【问题描述】:
我有以下指定的初始化器:
-(id) initWithName:(NSString*)name;
以及以下默认初始化程序:
-(id) init { return [self initWithName:@"foo"]; }
指定的初始化器接收的对象是什么类型的?发布还是自动发布?
给定以下初始化器:
-(id) init { return [self initWithName:[NSString new]]; }
我会收到一个 retined 对象。默认初始化程序永远没有机会释放它,所以我不应该保留它吗? 现在想象一下,这将是一个不提供便利初始化程序的类而不是 NSString(如 -myClassWithParam:)。我是否需要提供方便的初始化程序来启用就地构造?
【问题讨论】:
标签: objective-c memory-management