【发布时间】:2013-12-02 11:44:02
【问题描述】:
我在运行我的应用程序时收到以下错误消息:
"An Objective-C message was sent to a deallocated object (zombie) at address"
我一直在使用 XCode 4.6 开发从 iOS5 到 iOS7 的应用程序。为了尝试调试问题,我在 iOS 5 iPad 模拟器上使用 XCode 工具中的 Zombie 配置文件运行了该应用程序,发现以下代码行导致了错误:
NSMutableArray *resultArray = [dashboardService LstStatistics:1
statisticsDisplayStatus:2
dashboardSection:1
resultType:&successString];
为什么这行代码会导致消息发送到已释放对象(僵尸)错误?
【问题讨论】:
-
显示你的 LstStatistics: 方法定义
-
不能使用 Xcode 4.6 开发 iOS 7 应用,Xcode 4.6 只能链接到 6.1。这些应用程序将在 7 上运行,但无法访问任何 iOS 7 功能。
-
-(NSMutableArray *) LstStatistics:(int)groupInt_key statisticsDisplayStatus:(int)statisticsDisplayStatus dashboardSection:(int)dashboardSection resultType:(NSString **)resultType
-
您看到的错误意味着您正在尝试调用已释放对象(又名僵尸)的方法。如果您问题中的那一行是 Instruments 说有错误的那一行,那么 dashboardService 很可能是僵尸。如果不查看所有代码,就不可能确切知道问题出在哪里,但请确保在调用方法之前正确保留/释放(或遵循正确的 ARC 程序)dashboardService。
-
你当然不应该提交有僵尸问题的应用程序。
标签: ios objective-c ios5 ios-simulator instruments