0
我用这个代码我的课内存管理。 Copy方法
//Create the copy and pass it onto edit controller
PoolFacility *poolCopy = [self.thePoolFacility copy];
self.childController.thePoolFacilityCopy = poolCopy;
[poolCopy release];
现在的复制和实例时,我认为在调试器中的变量,怎么来的一些类的字段具有相同的内存地址的?他们不应该独立吗?根据Apple
NSCopying协议声明一种方法来提供对象的功能副本。 “复制”的确切含义因类而异,但副本必须是功能独立的对象,其值在复制时与原始值相同。
的两个实例是poolCopy &原thePoolFacility
我的类的复制方法是这样的:
- (id)copyWithZone:(NSZone *)zone {
PoolFacility *copy = [[[self class] allocWithZone:zone]init];
copy.name = [self.name copy];
copy.type = [self.type copy];
copy.phoneNumber = [self.phoneNumber copy];
//make sure I get proper copies of my dictionaries
copy.address = [self.address mutableCopy];
copy.webAddress = [self.webAddress copy];
copy.prices = [self.prices mutableCopy];
copy.pools = [self.pools mutableCopy];
return copy;
}
对不可变对象是,复制与保留相同。 – 2009-02-21 20:12:17