gpt4 book ai didi

iphone - 代表似乎自动设置为零

转载 作者:行者123 更新时间:2023-11-28 17:46:11 27 4
gpt4 key购买 nike

我正在制作一个辅助类。这个助手类由一个我将与之交互的 NSObject 类和一个执行其他一些操作的 UIViewController 组成。

这是在我的应用委托(delegate)中或在我分配 NSObject 类的任何地方发生的事情:

MyObjectClass *class = [[MyObjectClass alloc] init];
[class setDelegate:self];

现在,这个委托(delegate)是我这样创建的:

@protocol MyDelegate
-(void) someCall;
@end
@interface MyHelperClass : NSObject {
id <MyDelegate> delegate;


}
@property (retain, nonatomic) id <MyDelegate> delegate;

所以这很好用。但这就是问题所在。如果我分配我的助手类并将其委托(delegate)给 View Controller 或其他东西,然后调用我的方法之一打开我的助手 View Controller ,委托(delegate)将停止工作。调试后它似乎有一些内存地址,直到我弹出另一个 View Controller 并且当我返回它时,委托(delegate)的内存地址是 0x0。

我的问题是这怎么会发生?我是否需要对我的代表做一些特别的事情来阻止它释放? (我自己不会在任何地方发布)我需要保留它吗? 如何在我打开 viewcontroller 时保持它的分配状态以便我可以继续使用它?

提前致谢!

最佳答案

delegate的内存地址为0x0表示它从未被分配,并不是说它被释放了。如果它被释放,它将不再是一个有效地址,但它会是它被释放之前的地址。

关于iphone - 代表似乎自动设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5813037/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com