我对iphone应用程序开发非常陌生,所以我开始使用Cocos2d框架而不是完全客观的c从头开始,因为它降低了一些学习曲线,我发现它更容易。我试图在Cocos2d网站上做一些教程,但是,作为人类而不是羊,决定尝试一些不在教程中的东西。在NSLog中看起来很奇怪的变量?
所以,这里是从教程中的相关代码:
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint location = [self convertTouchToNodeSpace: touch];
[cocosGuy stopAllActions];
[cocosGuy runAction: [CCMoveTo actionWithDuration:1 position:ccp(location.x + 32, location.y + 32)]];
可正常工作,科科斯人移动到哪里我摸我的iPod有一秒的延迟和一个32像素的偏移。所以现在,我想获得一些文字反馈,以及我点击屏幕的位置。我试图用的NSLog显示以触摸的location
一些信息:
NSLog([NSString stringWithFormat:@"x=%d y=%d", location.x, location.y]);
的Xcode好心告诉我:Format not a string literal and no format arguments
。除非我完全错误,否则@"text"
是目标C中的字符串字面值,而两个位置变量是格式参数。
运行时,控制台会显示类似:
2011-06-20 19:54:22.765 Lesson1[315:707] x=0 y=1078640640
2011-06-20 19:54:23.887 Lesson1[315:707] x=0 y=1080631296
2011-06-20 19:54:24.576 Lesson1[315:707] x=0 y=1080242176
当我触摸iPod屏幕在三个随机的地方。 x永远不会改变,y总是一个巨大的整数。
我的代码有什么问题,并且对iphone开发世界,objective c和cocos2d有所了解,我该如何着手尝试在未来更好地调试它?
请注意,这实际上是我实验所有这一切的第二天,所以请原谅我,如果这是一个令人难以置信的明显或愚蠢的问题。
编译器阻止您创建经典的安全漏洞;如果您的字符串碰巧有时会创建一个无意的转义序列,那么您的手中就会有一个很好的拒绝服务攻击(最好)。 – bbum
@bbum拒绝服务什么?一个iPod?它并不妨碍我编译,只是发出警告。 – Cyclone