2012-03-27 2 views
0

У меня есть такой кодмассив с UIImageView элементами - setImageWithURL

arrayWithImages = [[NSMutableArray alloc] init]; 

NSEnumerator *enumForNames = [arrayWithNames objectEnumerator]; 
NSEnumerator *enumForURLs = [arrayWithURLs objectEnumerator]; 

id objName, objURL; 

while(objName = [enumForNames nextObject]) { 
    objURL = [enumForURLs nextObject]; 

    UIImageView *anImage = nil; 
    [anImage setImageWithURL:[NSURL URLWithString:objURL]]; 

    (...) 

    [arrayWithImages addObject:anImage]; 

} 

И каждый раз, когда я получил SIGABRT в соответствии с "[arrayWithImages AddObject: Animage];" Что здесь не так?

+0

Проверьте журнал и опубликуйте трассировку стека –

+0

Вы проверили, правильно ли установлено изображение? Если он по-прежнему «nil», когда вы пытаетесь добавить его в массив, он сработает. – rosslebeau

+0

Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «*** - [__ NSArrayM insertObject: atIndex:]: объект не может быть nil ' –

ответ

0

Я не вижу метод setImageWithURL на UIImageView. Откуда это?

Есть ли выход из аварии SIGABRT?

Попробуйте этот код:

// Download the image 
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:objURL]]; 
// Make an UIImage out of it 
UIImage *anImage = [UIImage imageWithData:imageData]; 
// Create an image view with the image 
UIImageView *imageView = [[UIImageView alloc] initWithImage:anImage]; 

// Check to make sure it exists 
if (imageView != nil) { 
    // Add it to your array 
    [arrayWithImages addObject:imageView]; 
else { 
    NSLog(@"Image view is nil"); 
} 

Обратите внимание, что вы должны загрузить изображения асинхронно, чтобы избежать висит петля. This blog post обсуждение загрузки асинхронного изображения.

Также, если вы знаете, что [enumForURLs nextObject]; вернет NSString (или даже лучше, NSURL), вы должны назначить objURL для ввода NSString (или NSURL).

+0

setImageWithURL - это метод класса SDWebImage. Я догадался, что это правильно импортировано. –

+0

Итак, игнорируйте код, используемый для его замены. – JoePasq

+0

Итак, как я могу исправить это, используя setImageWithURL? –

Смежные вопросы