我的应用程序崩溃显示消息发送到解除分配的实例

时间:2015-07-27 07:48:53

标签: ios objective-c

我的应用程序正在崩溃,显示消息"消息发送到解除分配的实例",当我在我的应用程序中启用Zombies时。我只是将NSString设置为从视图控制器呈现的另一个类。在进一步的调查中,我开始知道我没有传递一个nsstring而是得到了nscfstring。如何解决这个问题呢?

4 个答案:

答案 0 :(得分:1)

"消息发送到解除分配的实例"是一个错误,通常发生在你的类获得dealloc&但仍然是某事物的委托(可能是表视图,集合视图等),因此仍然试图接收消息。 如果是这样,您可以尝试在视图控制器的dealloc方法中将这些委托设置为nil:

- (void)dealloc {
    tableview.delegate = nil;
}

希望这有帮助

答案 1 :(得分:1)

我最终通过将NSString类更改为int来解决了这个问题。实际上我在NSCFsting格式中获得了产品ID,我需要另一个正在呈现的视图控制器。我只是通过使用代码&#34将productid转换为int ; [productid intvalue]"并使用" int type"创建了一个对象。在呈现的视图控制器中,此后通过使用setter和getter方法,我能够获取该值。 -

答案 2 :(得分:0)

作为NSString类的子类,_NSCFString始终保证响应set string或isEqualToString。您应该记录所有数据,看看是否还有其他导致崩溃的因素。 查看更多here

答案 3 :(得分:0)

我以前做的事情是在早些时候。

  1. 定义UILabel并将其隐藏起来......

  2. 在viewDidLoad中,将NSString值赋予此UILabel

  3. 现在,代替NSString检查此UILabel的数据......

  4. 这样,我以前解决了NSString的问题。