2014-02-16 68 views
0

我有一个代表,曾经伟大的工作。 但现在我将委托侦听器移动到其他类,并且我崩溃了。委托崩溃时,在另一个类,而不是主视图

让说我有一个主视图,称为viewA。我有一个叫做initialiser的初始化类。

在viewA这是主要的我视图做

Initializer *initi=[[Initializer alloc]init]; 
[initi fetchProgramData]; 

当fetchProgramData在初始化器是做:

//get categories and types 
bsManager=[[BusinessManager alloc]init]; 
[bsManager setDelegate:self]; 
[bsManager getAllCategories]; 

并且在该类别i写委托方法还,听。

当我发布委托,我崩溃没有解释。

如果我在主要的viewA中设置了这个监听器,它可以工作,但是如果它在另一个类中,比如initialiser,它的崩溃。 为什么?

+0

如何引用您的委托类?也许它被释放,所以只有一个弱引用? – Volker

+0

@property(nonatomic,assign)id delegate; – Curnelious

+0

什么保留你分配的代表('initialiser')?什么保留了保留它的对象('viewA'?)。 – Wain

回答

0

那么不得不把一个属性,用于委托不失去他:

@property(strong,nonatomic) Initializer *initi; 
0

加入异常断点:

在例外菜单中选择添加异常断点:

Select menu exceptions 你会看到这里有一个断点:

enter image description here 并运行你的项目,当你的应用程序崩溃。你可以看到关于崩溃的详细信息。

写什么会有,我可以理解这个问题。

+0

我做到了。它仍然没有显示错误,但我可以在左边看到一些关于[PFTask thenCallbackOnMainThreadAsync] – Curnelious

相关问题