Cocoa Touch: добавление изображений в цикл - PullRequest
0 голосов
/ 22 октября 2011

это сбивает меня с толку, когда я вставляю массив URL-адресов изображений, я думаю, это из-за того, что я создал UIImageView и затем пытаюсь сделать это снова с тем же именем!

- (void)cycleImages:(NSArray *)images {


int fromLeft = 5;
   for(int n = 0; n <= [images count]; n++){

   UIImageView *myImageView = [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[images objectAtIndex:n]]]]];

   myImageView.frame = CGRectMake(fromLeft, 5, 48, 48); // from left, from top, height, width

   fromLeft = fromLeft + 53;

   //add image view to view
   [self.view addSubview:myImageView];


    NSLog(@"%@", [images objectAtIndex:n]);

}
}

Есть идеи? Спасибо! Dex

1 Ответ

0 голосов
/ 22 октября 2011

Во-первых, вы должны использовать быстрое перечисление вместо цикла индекса. Быстрое перечисление проще, понятнее и быстрее - если вам не нужен какой-то конкретный индекс, нет причин не использовать быстрое перечисление.

   UIImageView *myImageView = [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[images objectAtIndex:n]]]]];

Предполагается, что [images objectAtIndex:n] является строкой. Это то, что вы положили в массив?

Кроме того, поскольку вы создали это представление изображения с помощью alloc, его необходимо разблокировать. Если вы используете ARC, это делается автоматически, поэтому вам не нужно ничего делать; в противном случае вам нужно либо отправить его release после добавления в качестве подпредставления, либо отправить autorelease.

это обрушивается на меня ...

Пожалуйста, будьте более конкретны. Что за «крушение» вы получаете и по какой линии?

Если вы получили журнал сбоев, отредактируйте ваш вопрос, чтобы включить его.

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