Я разрабатываю на iOS 4, и у меня есть этот метод в моем приложении Delegate. Он вызывается из пары делегатов источника данных tableviews. Инструменты дали мне это (на устройстве и симуляторе)
Malloc 512 байт, Malloc 512 байт, NSConcreteMapTable (Foundation). Mallocs не показывают никакой ответственной библиотеки.
Вот метод, возвращающий объект:
- (NSXMLParser *) getXmlParserFrom:(NSString *)remoteFile andCacheToFile:(NSString *) fileName forceRefresh:(BOOL) doRefresh {
NSXMLParser *xmlParser;
//FIRST TRY TO LOAD THE XML FROM CACHED FILE
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSString *xmlDocumentFromCache = [[NSString alloc] initWithContentsOfFile:filePath];
if ( xmlDocumentFromCache && !doRefresh ) {
NSData *xmlData = [NSData dataWithContentsOfFile:filePath];
xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
} else {
NSURL *xmlFileURL = [NSURL URLWithString:remoteFile];
NSString *contentsOfRemoteFile = [NSString stringWithContentsOfURL:xmlFileURL];
//CACHE THE FILE
BOOL cacheResult = [contentsOfRemoteFile writeToFile:filePath atomically:YES];
xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFileURL];
}
[xmlDocumentFromCache release];
return [xmlParser autorelease];
}