2012-06-13 2 views
0

커스텀 프레임 워크 (물론 테스트를위한 CocoaTouch 응용 프로그램)를 개발 중입니다. 큰 프레임 워크이기 때문에 여기에 게시하는 것은 불가능합니다 (오픈 소스가 아니라 내 잘못이 아닙니다!).NSString의 NSArray에서 메모리 누수가 발생했습니다.

나는 꽤 오랫동안 노력해 왔지만 어쩌면 대답을 찾을 수 없습니다. Instruments는 내 응용 프로그램에서 일부 누설을 혐의로 고소하고 있습니다. 정말 초보자, 그래서, 내가 보고서를 잘못 해석하고있어 경우 나도 몰라,하지만

[NSArray array] 
[NSString stringWithCString:encoding:] 
[NSString stringWithFormat:] 
[NSString stringWithUTF8String:] 
[_obj_rootAlloc] 
[__NSArrayM] 

같은 방법을 보이는 주된 이유의 일부, 그리고 그건 정말 어떤 이해가되지 않습니다 나를.

이 링크에서 Instruments 실행 보고서를 찾을 수 있습니다. 누구든지 take a look을 기쁘게 할 수 있었는지, 그게 아마도 의미가있을 수 있는지 보았습니까?

+0

무엇이 문제입니까? – trumpetlicks

+0

사람들이 읽을 수없는 소스에서 누수를 찾기 위해 20 + M zip 파일을 다운로드 할 것인지 확신하지 못합니다. – sarnold

+1

NSAutoreleasePool : http://stackoverflow.com/questions/을 사용해야합니다. 65427/how-does-the-nsautoreleasepool-autorelease-pool-work – Butaca

답변

0

실제 문제는 합성 속성에 대한 가정이었습니다.

@interface MyClass : NSObject 

@property(nonatomic,retain) NSString *myProperty; 

@end 

그리고 구현 :

@implementation MyClass 
@synthesize myProperty=_myProperty; 

@end 

내가 @synthesize 것 또한 autorelease 재산,하지만 그건 내 실수라고 가정 나는 이런 일이 있었다. 나는 그것을 고쳤다 :

@implementation MyClass 
@synthesize myProperty=_myProperty; 

-(void)dealloc 
{ 
    [_myProperty release]; 
    [super dealloc]; 
} 

@end 

도와 줘서 고마워!

4

인스트루먼트는 누수 된 오브젝트가 공식 누출이 발생한 지점이 아닌 위치를보고합니다. 어딘가에, 당신이 그 방법으로 생성하고있는 객체는 지나치게 보완되거나 필요할 때 공개되지 않습니다.

관련 문제