Я попробовал все, чтобы отладить этот, но я не могу до конца разобраться.
Этот код находится в подклассе NSOperation, который обрабатывается из очереди:
(Границы - это массив NSAR, содержащий 5 объектов UIimage)
NSMutableArray *images = [[NSMutableArray alloc] init];
for (unsigned i = 0; i < 5; i++)
{
CGSize size = CGSizeMake(60, 60);
UIGraphicsBeginImageContext(size);
CGPoint thumbPoint = CGPointMake(6, 6);
[controller.image drawAtPoint:thumbPoint];
CGPoint borderPoint = CGPointMake(0, 0);
[[borders objectAtIndex:i] drawAtPoint:borderPoint];
[images addObject:UIGraphicsGetImageFromCurrentImageContext()];
UIGraphicsEndImageContext();
}
[images release];
Код работает в большинстве случаев нормально, но когда я нажимаю на iphone с помощью доступа к подпредставлениям и нажимаю множество кнопок в интерфейсе, я либо получаю это исключение, которое захвачено операцией:
Exception Load view: *** -[NSCFArray insertObject:atIndex:]: attempt to insert nil
или я получаю это:
Program received signal: “EXC_BAD_ACCESS”.
Исключение вызвано тем, что UIGraphicsGetImageFromCurrentImageContext () возвращает nil.
Я не знаю, как отлаживать EXC_BAD_ACCESS, но я предполагаю, что эта ошибка (фактически обе эти ошибки) вызвана нехваткой памяти. Отладчик останавливается на линии:
[controller.image drawAtPoint:thumbPoint];
Как я уже упоминал, я поймал исключение в ловушку, чтобы жить с этим, но EXC_BAD_ACCESS более серьезен.
Если это связано с памятью, как я могу узнать, и можно ли увеличить объем памяти, доступной для NSOperation?