Когда я выполняю этот код:
- (NSString *)description{
return [NSString stringWithFormat:@"(FROG idle:%i animating:%i rect:%@ position:%@ tongue:%@)",
self.idleTime,
self.animating,
NSStringFromCGRect(self.rect),
NSStringFromCGPoint(self.position),
tongue
];
}
Я получаю следующий вывод:
(FROG idle:0 animating:0 rect:(null) position:{{1,2}{3,4}} tongue:{5,6})
Это неправильно, потому что это, кажется, пропускает реагировать строку формата и помещает все перемещенное одним. Настолько неактивный и анимация то, что я ожидаю, затем реагирую, пропускается, но результат NSStringFromCGRect (self.rect) помещается в положение, затем результат для положения продвинут к языку, затем язык не отображен вообще.
Я в замешательстве.
Я не могу сказать без объявлений для idleTime и animating, но одно или оба из них, вероятно, имеют неправильный тип для спецификатора %i. Возможно, idleTime - это double (NSTimeInterval)?
В зависимости от того, каковы их фактические типы, вы можете преобразовать их в int:
(int)self.idleTime,
(int)self.animating,
self.rect не должен быть правильным CGRect. Вы уверены, что не имеете в виду self.frame?