Cyc*_*one 1 debugging xcode objective-c nslog cocos2d-iphone
我对iphone app开发很新,所以我开始使用Cocos2d框架而不是从头开始完全客观c,因为它降低了学习曲线,我发现它更容易.我正在尝试从Cocos2d网站上做一些教程,但是,作为人而不是羊,已经决定尝试一些本教程中没有的东西.
所以,这是教程中的相关代码:
- (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)]];
Run Code Online (Sandbox Code Playgroud)
这按预期工作,cocos家伙移动到我触摸我的ipod的地方,延迟一秒和32像素偏移.所以现在,我想得到一些文字反馈,以及我在点击屏幕的位置.我尝试使用NSLog显示有关location触摸的一些信息:
NSLog([NSString stringWithFormat:@"x=%d y=%d", location.x, location.y]);
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
当我在三个随机位置触摸ipod屏幕时.x似乎永远不会改变,y总是一个大整数.
我的代码有什么问题,并且对iphone开发,目标c和cocos2d这个世界不熟悉,我怎么能在将来尝试更好地调试它?
请注意,这实际上是我第二天尝试所有这些,所以请原谅我,如果这是一个非常明显或愚蠢的问题.
小智 8
该x, y成员CGPoint是floatS,没有intS,因此,你应该使用%f来代替%d.
此外,NSLog()能够自己格式化.尝试:
NSLog(@"x=%f y=%f", location.x, location.y);
Run Code Online (Sandbox Code Playgroud)
代替.请注意,在上面的代码中,第一个参数为NSLog():
@"x=%f y=%f"
Run Code Online (Sandbox Code Playgroud)
是一个字符串文字,而在你的代码中,第一个参数不是文字的:
[NSString stringWithFormat:@"x=%d y=%d", location.x, location.y]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |