У меня есть некоторые утечки памяти в моем приложении, и я думаю, что они происходят от моего - (id) copyWithZone: (NSZone *) метода зоны моего класса Project. Цель этой копии - создать глубокую копию, так как значения должны быть изменены, не влияя на исходные значения. Этот класс имеет собственный метод init:
- (id)initWithProjectID:(NSInteger)aProjectID name:(NSString *)aProjectName private:(BOOL)isPrivateProject userProjectOrderTieID:(NSInteger)aUserProjectOrderTieID orderID:(NSInteger)anOrderID {
self = [super init];
if (self) {
projectID = aProjectID;
projectName = [[NSString alloc] initWithString:aProjectName];
isPrivate = isPrivateProject;
userProjectOrderTieID = aUserProjectOrderTieID;
orderID = anOrderID;
}
return self;
}
и метод копирования:
- (id)copyWithZone:(NSZone *)zone {
Project *copy = [[[self class] allocWithZone:zone]
initWithProjectID:projectID
name:projectName
private:isPrivate
userProjectOrderTieID:userProjectOrderTieID
orderID:orderID];
return copy;
}
и для полноты метода dealloc:
- (void)dealloc {
[projectName release];
[super dealloc];
}
Все ivars являются NSIntegers, за исключением projectName - NSString. Кто-нибудь может увидеть какие-либо проблемы с этим кодом?