当我运行此代码时:
- (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})
这是错误的,因为它似乎正在跳过rect格式字符串并将所有内容放置一个。所以空闲和动画是我所期望的,然后跳过rect,但NSStringFromCGRect(self.rect)的结果被放置到位,然后位置的结果被推到舌头,然后舌头根本不显示。
我很茫然。
答案 0 :(得分:1)
如果没有idleTime和动画的声明,我无法分辨,但其中一个或两个可能是%i说明符的错误类型。也许idleTime是双倍的(NSTimeInterval)?
根据实际类型的不同,您可以将它们转换为int:
(int)self.idleTime,
(int)self.animating,
答案 1 :(得分:1)
self.rect不能是有效的CGRect。你确定你不是指self.frame吗?