Emi*_*mil 1 iphone delegates objective-c release-management
我在这里碰到了一个真正的困难.
我的课程是自我创建的(一个+ (void) start;方法),它被委派给一个代表.我需要通过委托选择器向委托发送一些消息.为了检查代表是否已被释放,我已经尝试过if (delegate == nil/NULL),但即使它确实已经发布,它仍然说它不是.
我该如何解决这个问题?(代表被分配到id)
这就是我的应用程序的构建方式:
AppDelegate
> NavController
>> TableView
>>> Post
>>>> GetData
Run Code Online (Sandbox Code Playgroud)
GetData是自创的类.Post是GetData的委托,由TableView/NavController发布.发布Post后,它也被设置为零.
换句话说,GetData不会释放它的委托!
取消分配指针的内容不会自动将指针设置为NULL.你需要明确地做,例如
[delegate release];
delegate = nil;
Run Code Online (Sandbox Code Playgroud)