2013-11-29 69 views
2

我對iOS編程完全陌生,我試圖製作一個字母拼圖被拖放到目標文字遊戲。我已經採用了來自www.raywenderlich.com/33806/how-to-make-a-letterword-game-with-uikit-part-2的代碼。問題是當我使用GameLogic類作爲委託來匹配是否拖動的字母表與目標是否匹配,它給了我EXC_BAD_ACCESS(代碼= 1,地址= 0x277 ......)。在GameLogic.m中,即使_targets和_tiles數組在dealRandomScrabble方法中初始化,當協議:(void)tileView:(TileView *)tileView didDragToPoint:(CGPoint)pt被調用時會發生錯誤。在這種方法中,電視和_targets令人驚訝地指空!任何人都可以看看我的代碼,並告訴我我錯過了什麼?在我的Google雲端硬盤代碼的鏈接是:使用委託給出了EXC_BAD_ACCESS(代碼= 1,地址= 0x2774 ...)

https://drive.google.com/file/d/0BzWvv9PVuvDKLWtJcldRbGVRNUk/edit?usp=sharing

預先感謝您。

+0

代碼運行在下面的教程細,但是當我使用它時,它不會。這真的需要幫助! www.raywenderlich.com/33806/how-to-make-a-letterword-game-with-uikit-part-2 –

回答

0

- (空)dealRandomScrabble

//初始化目標列表

,而不是這一行

_targets = [NSMutableArray arrayWithCapacity:scrab2Len]; 

使用下面一行。

_targets =[[NSMutableArray alloc] initWithCapacity:scrab2Len]; 

通過這樣做,_targets犯規點爲NULL - (無效)tileView:(TileView *)tileView didDragToPoint:(CGPoint)PT方法(協議方法)

+0

ps:我正在使用ARC。很高興你也這樣做了 –

+0

我也是這樣試過的。問題是_targets中的字母應該將字母表作爲字符串來保存,但不會。另外,targetView應該保存目標中的所有字母,但不是。 :( –

+0

U是對的,用ARC做的竅門。謝謝! –

0

嘗試用

_targets = [NSMutableArray arrayWithCapacity:scrab2Len] retain]; 

更換

_targets = [NSMutableArray arrayWithCapacity:scrab2Len]; 

,並確保ü釋放該對象,一旦你在這個方法中完成

+0

哇Shanti,感謝您的及時回覆。現在,_targets包含字母,但targetView不包含字母,並在if語句中再次提供錯誤的內存訪問權限: //檢查目標是否被發現 if(targetView!= nil){[targetView.letter NSLog(@「成功!你應該把瓷磚放在這裏!」); (@「檢查玩家是否已經完成了短語」);其他{ NSLog(@「失敗,讓玩家知道這個圖塊不匹配。」); } } –

+0

您能否親切地運行我共享的項目以更好地理解我的問題。我真的很感謝你的幫助! –

相關問題