gpt4 book ai didi

ios - NSNotificationCenter 使我的应用程序崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:58:19 24 4
gpt4 key购买 nike

我添加了一个 NSNotificationCenter 观察器,它在两个不同的 View Controller 上调用 2 个具有相同名称的选择器。

它可以工作,但是当我运行该应用程序时,它有时会崩溃并显示以下错误消息:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x18)

Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

Image

有人知道它为什么会崩溃吗?谢谢!

.

我的代码:

fetchFromParse:

-(void)sendAllStores
{
[[NSNotificationCenter defaultCenter]postNotificationName:@"getStoresArrays" object:nil userInfo:self.storesDict];
}

firstVC.m:

- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(getStoresArrays:) name:@"getStoresArrays" object:nil];
}

-(void)getStoresArrays:(NSNotification*)notification
{
NSLog(@“Working”);
}

secondVC.m:

-(void)prepareArrays
{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(getStoresArrays:) name:@"getStoresArrays" object:nil];
}
-(void)getStoresArrays:(NSNotification*)notification
{
NSLog(@“Working”);
}

AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.secVC=[[secondVC alloc] init];
[self.secVC prepareArrays];

fetchFromParse *fetchFromParseObj=[[fetchFromParse alloc] init];
[fetchFromParseObj getStoresFromParse];

Return YES;
}

最佳答案

通知崩溃

如果您尝试在不移除观察者的情况下关闭 View Controller ,通常您可能会看到这种性质的崩溃。因此,帕蒂尔先生提供的那部分答案是绝对必需的。您的用例因移除观察者的位置和方式而异。如果过早删除它,当您尝试引用任何相关对象时,您可能最终会崩溃。

因此您可能想要删除 self.storesDict 对象,或者至少在使用它之前验证它不是 nil。

调试

这是一个 quick tutorial关于使用 Xcode 进行调试。它适用于旧版本,但它应该能让您快速上手。您还可以查看 Apple docs有关收集崩溃日志的更多信息。

日志

您应该转到报告导航器并复制更多您的日志,以便我们可以更准确地确定问题的原因。您可以在错误代码之前添加一个断点,然后逐步解决该问题。如果没有别的,请复制调试控制台。

获取崩溃日志

您可以打开 Xcode,在“窗口”菜单中选择“设备”。选择您连接的设备 (iPhone/iPad) 并单击查看设备日志按钮。从列表中选择您的应用程序名称/崩溃日期。将数据复制到问题中。

更多信息

您提供的有关崩溃的信息越多,我们就越有可能为您提供帮助。我怀疑答案是你要么试图访问 nil 的东西,要么没有在正确的时间释放观察者。当您的 View 消失时释放观察者可能不合适,但您没有提供足够的信息来使其显而易见。

不同的 View Controller 如何协同工作?您确定是通知导致了崩溃吗??在发布通知和每个选择器中放置一个断点,然后调试应用程序直到它崩溃。您将需要确定崩溃之前的条件。如果您在更新问题时让我知道,我会完善这个答案。

关于ios - NSNotificationCenter 使我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039702/

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