2013-11-29 84 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

您能否亲切地运行我共享的项目以更好地理解我的问题。我真的很感谢你的帮助! –

相关问题