Objective-C stringWithFormat пропускает аргумент? - PullRequest
1 голос
/ 09 июня 2010

Когда я запускаю этот код:

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

Я в растерянности.

Ответы [ 2 ]

1 голос
/ 09 июня 2010

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

1 голос
/ 09 июня 2010

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

В зависимости от их реальных типов, вы можете преобразовать их в int:

                                (int)self.idleTime, 
                                (int)self.animating, 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...