我的应用程序正在崩溃,显示消息"消息发送到解除分配的实例",当我在我的应用程序中启用Zombies时。我只是将NSString设置为从视图控制器呈现的另一个类。在进一步的调查中,我开始知道我没有传递一个nsstring而是得到了nscfstring。如何解决这个问题呢?
答案 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)
我以前做的事情是在早些时候。
定义UILabel并将其隐藏起来......
在viewDidLoad中,将NSString值赋予此UILabel
现在,代替NSString检查此UILabel的数据......
这样,我以前解决了NSString的问题。