Objective C stringWithFormat пропускает аргумент?

Когда я выполняю этот код:

- (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) помещается в положение, затем результат для положения продвинут к языку, затем язык не отображен вообще.

Я в замешательстве.

1
задан Michael Myers 9 June 2010 в 01:23
поделиться

2 ответа

Я не могу сказать без объявлений для idleTime и animating, но одно или оба из них, вероятно, имеют неправильный тип для спецификатора %i. Возможно, idleTime - это double (NSTimeInterval)?

В зависимости от того, каковы их фактические типы, вы можете преобразовать их в int:

                                (int)self.idleTime, 
                                (int)self.animating, 
1
ответ дан 2 September 2019 в 23:56
поделиться

self.rect не должен быть правильным CGRect. Вы уверены, что не имеете в виду self.frame?

1
ответ дан 2 September 2019 в 23:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: