Ios 已将Objective-C消息发送到地址处的解除分配对象(僵尸)

Ios 已将Objective-C消息发送到地址处的解除分配对象(僵尸),ios,objective-c,ios5,ios-simulator,instruments,Ios,Objective C,Ios5,Ios Simulator,Instruments,我在运行应用程序时收到以下错误消息: "An Objective-C message was sent to a deallocated object (zombie) at address" 我一直在使用XCode 4.6开发从iOS5到iOS7的应用程序。为了尝试并调试该问题,我在iOS 5 iPad模拟器上使用XCode instruments中的僵尸配置文件运行了该应用程序,发现以下代码行导致了错误: NSMutableArray *resultArray = [dashboardSe

我在运行应用程序时收到以下错误消息:

"An Objective-C message was sent to a deallocated object (zombie) at address"
我一直在使用XCode 4.6开发从iOS5到iOS7的应用程序。为了尝试并调试该问题,我在iOS 5 iPad模拟器上使用XCode instruments中的僵尸配置文件运行了该应用程序,发现以下代码行导致了错误:

NSMutableArray *resultArray = [dashboardService LstStatistics:1
                                      statisticsDisplayStatus:2
                                             dashboardSection:1
                                                   resultType:&successString];

为什么这行代码会导致消息发送到解除分配对象(僵尸)错误?

是的。你犯了一个错误。在您尝试向dashboardService发送消息之前,dashboardService似乎已被丢弃。。是@property(strong)吗

要做的事情:

  • 将项目转换为圆弧。你有一个内存错误。ARC为您处理内存

显示您的统计信息:方法定义您不能使用Xcode 4.6开发iOS 7应用程序,Xcode 4.6只能链接到6.1。应用程序将在7上运行,但无法访问任何iOS 7功能。-(NSMutableArray*)LstStatistics:(int)groupInt_key statisticsDisplayStatus:(int)statisticsDisplayStatus仪表板部分:(int)仪表板部分结果类型:(NSString**)结果类型您看到的错误意味着您正试图对已解除分配的对象(也称为僵尸)调用方法。如果您问题中的这一行是Instruments表示有错误的那一行,那么dashboardService很可能就是僵尸。在不查看所有代码的情况下,不可能准确地知道问题所在,但在调用仪表板服务上的方法之前,请确保您正确地保留/释放(或遵循正确的ARC过程)。您当然不应该提交存在僵尸问题的应用程序。我使用以下代码修复了该问题-(void)dealloc{self.tableView.dataSource=nil;}