При стартиране приложението ми работи перфектно, след известно време става все по-бавно и по-бавно....
отнема около 8 до 10 секунди, за да отговори на действието и накрая се срива Не знам защо се случва всичко това. Използвам collectionview на uiviewcontroller, всичките му изгледи на съдържание се създават в персонализиран клас клетки.
след като използвах Инструменти за тестване на iPad 2, направих тези снимки на екрана.
сега какво да правя.?? виждал ли си някакъв проблем тук...???
тук има бутон Плюс в UICollectionView Cell за извършване на действие, при натискане на бутон времето се увеличава произволно и достига до 300 000+ ms
Имайте предвид, че ---> Основната нишка показва 0,0 ms
Какво означава това....????
моля, насочете ме в правилната посока
тук е пълният код на този метод
-(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% от времето за изпълнение. прав ли съм..???
Къде трябва/мога да подобря своя код?