При запуске мое приложение работает просто отлично, через некоторое время оно становится все медленнее и медленнее ....
для ответа на действие требуется от 8 до 10 секунд, и, наконец, происходит сбой Я не знаю, почему все это происходит. Я использую представление коллекции на uiviewcontroller, все его представления содержимого создаются в пользовательском классе ячеек.
после использования инструментов для тестирования на iPAd 2, сделал эти снимки экрана.
что теперь мне делать.?? вы видели какие-либо проблемы здесь...???
вот кнопка "Плюс" в ячейке UICollectionView для выполнения действия, время нажатия кнопки увеличивается случайным образом и достигает 300000+ мс
Обратите внимание, что ---> основной поток показывает 0,0 мс
Что это значит....????
пожалуйста, направьте меня в правильном направлении
вот полный код этого метода
-(void)btnPlus:(id)sender event:(id)event
{
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:myCollection];
btnIndex = [myCollection indexPathForItemAtPoint: currentTouchPosition];
MyCell *cell = (MyCell*)[myCollection cellForItemAtIndexPath:btnIndex];
NSString *newCode = [productID objectAtIndex:btnIndex.row];
newQty = cell.cellQty.text;
if ([updatedCodes containsObject:newCode])
{
//NSLog(@"Object Already Exist...");
for (i = 0; i < [updatedCodes count]; i ++)
{
if ([newCode isEqualToString:[updatedCodes objectAtIndex:i]])
{
qnty = [newQty integerValue];
qnty = qnty + 1;
cell.cellQty.text = [NSString stringWithFormat:@"%d", qnty];
newQty = cell.cellQty.text;
[updatedQty replaceObjectAtIndex:i withObject:newQty];
}
}
if (![indexPaths containsObject:btnIndex])
{
[indexPaths addObject:btnIndex];
}
prdID = [productID objectAtIndex:btnIndex.row];
[self UpdateProduct]; // Open DB SQlite DB Connection and update Table Record and Close Connection.
}
else
{
[updatedCodes addObject:newCode];
qnty = [newQty integerValue];
qnty = qnty + 1;
cell.cellQty.text = [NSString stringWithFormat:@"%d", qnty];
newQty = cell.cellQty.text;
[updatedQty addObject:newQty];
if (![indexPaths containsObject:btnIndex])
{
[indexPaths addObject:btnIndex];
}
prdID = [productID objectAtIndex:btnIndex.row];
[self BuyProduct]; // Open DB SQlite DB Connection and update Table Record and Close Connection.
}
[myCollection reloadItemsAtIndexPaths:indexPaths]; // I think problem is here.
}
Я думаю, что проблема заключается в том, что перезагрузка по определенным путям индекса в CollectionView снова и снова вызывает проблему, поскольку для выполнения требуется 91% времени. я прав..???
Где я должен/могу улучшить свой код?