0

我已经开始了一个非常简单的项目来学习 iOS 编程,但是touchesBegan.

您可以在此处从 DropBox 下载该项目。

我基本上有一个UIView子类,它应该在用户触摸的任何地方画圈。

很简单,但我不能让它工作。

非常感谢任何帮助。谢谢!

编辑 原来的问题是这行代码touchesBegan

    ts = [NSMutableSet setWithSet: [event touchesForView:self]];

我变成了:

    ts = [[NSMutableSet setWithSet: [event touchesForView:self]] retain];
4

3 回答 3

2

为什么不用ARC???:) 很好!你不保留你的ts集合。请注意,这会setWithSet:返回您自动释放的实例。(红色圆圈看起来很有希望:))

于 2011-11-21T21:20:39.747 回答
2

BAD_ACCESS 错误通常与引用不再存在的对象有关(即它们被释放或被自动释放)。检查内部touchesBegan或这些问题touchesEnded

  1. release当对象仍将被使用时,任何不正确的调用位置。尝试将它们注释掉,看看错误是否消失了。
  2. 使用自动释放的对象而不是保留它们。自动释放对象是使用直接引用类的方法名称创建的对象,例如:[NSString stringWith...]or [NSArray arrayWith...],而不是使用allocand init

如需进一步帮助,请尝试为这些方法添加一些代码片段。

于 2011-11-21T21:43:43.557 回答
0

要了解 BAD_ACCESS 在 xCode 中使用 Zombie 的原因,请查看链接 http://www.markj.net/iphone-memory-debug-nszombie/

于 2011-11-21T22:36:14.060 回答