Моя программа перемещает объект вдоль CGPoints.Когда создается новое количество CGPoints, оно просто отлично перемещается к новым точкам.После примерно 5-10 изменений объекта мое приложение вылетает, и XCode получает пляжный мяч.
Вот анимация:
-(void)animateDot {
double x1 = dotMotion.center.x;
double y1 = dotMotion.center.y;
double x2 = (*doodlePoints)[dotLocation].x;
double y2 = (*doodlePoints)[dotLocation].y;
dist = sqrt(((x2 - x1)*(x2 - x1)) + ((y2 - y1)*(y2 - y1)));
if (dist < 0.01){
dist = 1;
}
delay = dist/100.0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDidStopSelector:@selector(animateDot)];
[UIView setAnimationDuration:delay];
dotMotion.center = (*doodlePoints)[dotLocation];
if (dotLocation == doodlePoints->size()-1){
dotMotion.bounds = CGRectMake(0, 0, 16, 16);
} else {
dotMotion.bounds = CGRectMake(0, 0, 8, 8);
}
[UIView commitAnimations];
dotLocation = (dotLocation +1)%doodlePoints->size();
if (dotLocation == 0 && stopAnimation != YES){
dotLocation = (dotLocation +1)%doodlePoints->size();
}
}
Кнопка, которую вы нажимаете для нового объекта, имеет следующее: (и я вызываю isAnimating == TRUE один раз и никогда не называю это false, поэтому он не должен снова делать animationDot).
if (isAnimating == TRUE) {
} else {
[doodlePad animateDot];
}
Мои ошибки включают в себя:
Warning: Unable to reach Previous state:
Такжестек показывает очень большое количество (пару тысяч)
# <Not Fetched> //# = 1 to X amount
, а мой стек начинается с:
0 szone_malloc_should_clear
1 malloc_zone_malloc
2 _CFRuntimeCreateInstance
3 CFBasicHashCreate
4 __CFDictionaryCreateGeneric
5 CFDictionaryCreate
6 -[__NSPlaceholderDictionary int.. //I can't see the rest
7 +[NSDictionary dictionaryWithObj... //as above
, затем с 8 по 100 имеет
# -[DoodlePad animateDot]
# -[UIViewAnimationState sendDel... //can't see the rest
# -[UIViewAnimationState popAni... //above
после этого все это # <Not Fetched>
У меня такое ощущение, что мне нужен способ освобождения памяти или удаления анимации до создания следующих CGPoints.
Можете ли вы объяснить, что это значит?Я не смог найти никого с такой ошибкой в Google.Как можно исправить этот сбой?