0

我目前有三个 modalViewControllers,每个都有自己的关闭方式。

对于其中两个,我必须使用 UILabel,然后使用 touchesEnded: 方法来确定释放是否在适当的区域内 - 然后调用以关闭 modalViewController。

但是,我有一个可以只使用 UIButton 的地方,它工作正常。

我只是不明白为什么我不能对所有这些都使用 UIButton 。我不断收到错误:

objc[38738]: FREED(id): message release sent to freed object=0x5214f70
Program received signal:  “EXC_BAD_INSTRUCTION”.

我假设它与尝试访问已发布的内容有关(duh)-但除了调用的 -(IBAction)closeWindow:(id)sender {} 方法之外,我没有发生任何事情:

[self dismissModalViewControllerAnimated:YES];

有什么帮助吗?

4

2 回答 2

1

您应该尝试使用zombies 工具运行,以查看您正在向释放对象发送消息的位置。从 Xcode 只需转到 Run->Run with Performance Tool->Zombies,这将启动具有正确设置的 Instruments。

你可能要么释放(或自动释放)一个你不应该释放的对象(因为你不拥有它),要么没有保留你应该保留的东西。仪器将帮助您找出位置。

于 2010-07-12T21:24:49.427 回答
0

万一人们好奇这是如何解决的-我发现了我的问题:

我正在释放一个我没有保留的对象。

这是我的成功之旅: http ://www.iphonedevsdk.com/forum/iphone-sdk-development/52946-why-can-i-not-use-uibutton-dismiss-modalviewcontroller-consistently.html

于 2010-07-14T17:39:19.700 回答