누출 :오토 릴리즈와 객체를 반환하지만, 난 여전히 기억 나는이 메모리를 유출하고
내 사용자 정의 클래스 :
애플 대리자에서+ (id)vectorWithX:(float)dimx Y:(float)dimy{
return [[[Vector alloc] initVectorWithX:dimx Y:dimy] autorelease]; }
- (Vector*)add:(Vector*)q {
return [[[Vector vectorWithX:x+q.x Y:y+q.y] retain] autorelease]; }
내가 그것을 시작 :
Vector *v1 = [[Vector alloc] initVector];
Vector *v2 = [[Vector alloc] initVector];
Vector *vtotal = [[v1 add:v2] retain];
[v1 release];
[v2 release];
[vtotal release];
방법이 누출? 나는 그들을 풀어 놓거나 자동으로 풀어 준다. 이 앱을 유지하지 않으면 앱이 즉시 중단됩니다. 초기 출시 때문일 것입니다. 다른 릴리스를 추가하면 충돌이 발생합니다.
당신 돈이 새 벡터를 추가/유지할 필요가 없으며 [벡터 vectorWithX : Y :]의 결과 만 반환하면됩니다. initVector와 같은 코드를 게시 할 수 있습니까? –
답장을 보내 주셔서 감사합니다. 이미 add/autorelease를 add에서 제거했지만 여전히 누출되었습니다. init 벡터는 다음과 같습니다. (x와 y는 합성됩니다) - (id) initVector {self = [super init]; if (self) {x = 0; y = 0; } return self; } – gok