Помогите загрузить большие изображения в UIWebview? - PullRequest
2 голосов
/ 28 февраля 2011

Я загружаю изображения в UIWebview, используя следующий код. Для каждого изображения (при прокрутке моего прокрутки) вызывается функция для загрузки изображения. Проблема в том, что при непрерывной прокрутке до 30 изображений происходит сбой приложения. В чем может быть причина? Мои изображения 1300 на 1200 пикселей. Пожалуйста, помогите мне найти решение.

- (void) loadCatalogImage 
{
    @try{
//  if(imgView.image != nil)
//      return;
    //  [global_imgProgress startAnimating];
    //NSLog(@"image loading at = %@, %d", baseURL, 2 + pageNo);
    NSAutoreleasePool *pool;
    pool = [[NSAutoreleasePool alloc] init];

    //NSArray *array = [global_ContentString componentsSeparatedByString:@"@@#"];
    NSArray *array1 = [catalogURL componentsSeparatedByString:@"&"];
    //NSLog(@"baseURL = %@",baseURL);
    NSLog(@"loading catalog image(method: loadCatalogImage).......%@%@",baseURL, [[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"] objectAtIndex:0]); 

    zoomedImageURL = [NSString stringWithFormat:@"%@%@", baseURL, [[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"] objectAtIndex:1]];
//  NSLog(@"Catalog ZOOM URL = %@", zoomedImageURL);//[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"]);//[[[array objectAtIndex:[[global_CatalogRef objectAtIndex:pageNo] intValue]] componentsSeparatedByString:@"##"] objectAtIndex:3]);
    [zoomedImageURL retain];

    NSLog(@"aaaaaaa = %@",zoomedImageURL);
    [webView loadRequest:
        [NSURLRequest requestWithURL:
            [NSURL URLWithString:
                [NSString stringWithFormat:@"%@%@",baseURL, [[[array1 objectAtIndex:0] componentsSeparatedByString:@"##"] objectAtIndex:1]
                ]
            ]]
        ];

    }
}

Ответы [ 3 ]

1 голос
/ 28 февраля 2011

Любое приложение, которое загружает достаточно ресурсов, чтобы занять так много памяти, будет зависать.У Apple есть несколько демонстрационных проектов, которые специально посвящены загрузке большого изображения путем разбивки его на более мелкие фрагменты. Предлагаем вам взглянуть на них.

1 голос
/ 28 февраля 2011

Ваши изображения 1300 x 1200, и вы загружаете 30 из них?У вас может не хватит памяти.Если ваше приложение игнорирует предупреждения о памяти и загружает память, система iOS может заставить ваше приложение завершить работу.Как я упоминаю в своем комментарии ниже, многие изображения такого размера будут составлять около 180 мегабайт.Слишком большой.

Вам действительно нужно доставлять такие большие изображения в приложение для iphone, а их так много?

0 голосов
/ 28 февраля 2011

Можете ли вы поставить журнал аварий, пожалуйста?Если возможно, включите переменную окружения «NSZombieEnabled», а затем запустите приложение и посмотрите журнал аварий.Это поможет нам получить точную проблему.Кстати, почему вы создаете и сохраняете "zoomedImageURL"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...