gpt4 book ai didi

ios - 在 Singleton 方法中添加通知时将自身作为观察者传递时应用程序崩溃

转载 作者:可可西里 更新时间:2023-11-01 05:40:24 26 4
gpt4 key购买 nike

当我将自己作为观察者传递给单例对象创建类方法中的 NSNotification 时,我的应用程序崩溃了。请查看以下代码。

+(DownloadThumbnail *)sharedDownloadThumbnailInstance{
if(downloadThumbnail==nil){
downloadThumbnail = [[DownloadThumbnail alloc]init];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(connectedToInternet) name:NotifyInternetConnection object:nil];

}
return downloadThumbnail;
}

我花了大约 4 到 5 个小时来解决崩溃问题,但没有得到任何解决方案。

最佳答案

看起来“self”指针总是给你当前类对象的引用,但如果你在类方法下使用这个指针,这意味着它会给你类指针,即“DownloadThumbnail”。因此,无论何时触发通知,它都会调用类似于下面的代码。

[DownloadThumbnail connectedToInternet];

因为没有找到“connectedToInternet”的类方法,这就是它崩溃的原因。

所以你需要传递“downloadThumbnail”创建对象的引用,代码如下所示

[[NSNotificationCenter defaultCenter] addObserver:downloadThumbnail selector:@selector(connectedToInternet) name:NotifyInternetConnection object:nil];

现在试试,它不会崩溃:)

您也可以引用此链接 NSNotificationCenter: addObserver that is not self获取有关在 NSNotificationCenter 中将“ self ”作为观察者传递的更多详细信息。

关于ios - 在 Singleton 方法中添加通知时将自身作为观察者传递时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36643285/

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