所以,这是非常标准的内存管理,从我的理解:用相同的对象初始化几个相同类型的ivars?
ClassName *temp=[[ClassName alloc] init];
self.ivar=temp;
[temp release];
这是为了避免只是在做这创造了内存泄漏:
self.ivar=[[ClassName alloc] init];
酷。但是,假设我有几个基于ClassName
的ivars?这样行:
ClassName *temp=[[ClassName alloc] init];
self.ivar=temp;
self.othervar=temp;
self.anothervar=temp;
[temp release];
他们会全部是操作同一个对象,最终,尽管我希望他们有ClassName
不同的实例?我认为这样做的结果可能取决于ivars是否创建为retain
vs copy
?假设它们设置为retain
,这样可以吗?
+1确认'self.ivar = [[ClassName alloc] init];'创建泄漏 – albertamg