我對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