Я предоставил больше информации о коде.checkstatusthread()
вызывается через каждые 5 секунд.Используемый ниже объект ipItemsArray
хранит XML, поступающий с сервера.
// XMLAppDelegate.h
@interface XMLAppDelegate : NSObject <UIApplicationDelegate> {
NSMutableString *hostStr2;
NSData *dataURL2;
NSString *playlistdata;
}
@property (nonatomic, retain) NSMutableString *hostStr2;
@property (nonatomic, retain) NSData *dataURL2;
@property (nonatomic, retain) NSString *playlistdata;
@end
// XMLAppDelegate.m
-(void)checkstatusthread
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
hostStr2 = [[NSMutableString alloc] initWithFormat:@"http://%@/getplaylist.php?ip=%@",yourip,restip];
dataURL2 = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr2 ]];
playlistdata = [[NSString alloc] initWithData:dataURL2 encoding: NSASCIIStringEncoding];
ipItemsArray = [playlistdata componentsSeparatedByString:@"|^|"];
[hostStr2 release];
[playlistdata release];
status =[ipItemsArray objectAtIndex:0];
[status retain];
if([[ipItemsArray objectAtIndex:0]isEqualToString:@"0001"])
{
serverOutput1 =[ipItemsArray objectAtIndex:1];
[serverOutput1 retain];
nowplaying =[ipItemsArray objectAtIndex:2];
[nowplaying retain];
tracklocation=[ipItemsArray objectAtIndex:3];
[requestlocation retain];
requestlocation=[ipItemsArray objectAtIndex:4];
temp_app =[tracklocation intValue];
}
[serverOutput1 retain];
[nowplaying retain];
[serverOutput1 retain];
[nowplaying retain];
[tracklocation retain];
[requestlocation retain];
// checkstatus() called
[self performSelectorOnMainThread:@selector(checkstatus)
withObject:nil
waitUntilDone:false];
[pool drain];
}
- (void)dealloc {
[dataURL2 release];
[playlistdata release];
[ipItemsArray release];
}
Строка NSArray *ipItemsArray = [playlistdata componentsSeparatedByString:@"|^|"];
дает мне утечку памятикогда я запускаю инструмент утечки в Xcode 4.2.перепробовал все возможные вещи по этому поводу, но чувствую, что нужно что-то добавить.Может кто-нибудь, пожалуйста, помогите мне.
Вот скриншот утечки объекта.Также я заметил, что мое приложение не вызывает метод Dealloc.