Ios 如何修复appdelegate上的线程1:EXC_BAD_访问(代码=1,地址=0x52879984)?

Ios 如何修复appdelegate上的线程1:EXC_BAD_访问(代码=1,地址=0x52879984)?,ios,swift,xcode,sprite-kit,Ios,Swift,Xcode,Sprite Kit,我正在为IOS应用商店制作一款简单的游戏。到目前为止,比赛一直进行得很顺利。突然,我遇到了一个错误:当我在iPhone 5s上玩游戏一小段时间后,我按下home(主页)按钮返回home(主页)菜单,然后返回游戏,它在appdelegate上崩溃,出现以下错误: 线程1:EXC_BAD_访问(代码=1,地址=0x52879984) 游戏很好,直到我尝试回到游戏中,应用程序进入前台后崩溃 这不会发生在其他设备上,例如我的Iphone 7。我已经研究过了,我相信这可能与我的内存分配有关,因为我根本没有

我正在为IOS应用商店制作一款简单的游戏。到目前为止,比赛一直进行得很顺利。突然,我遇到了一个错误:当我在iPhone 5s上玩游戏一小段时间后,我按下home(主页)按钮返回home(主页)菜单,然后返回游戏,它在appdelegate上崩溃,出现以下错误:

线程1:EXC_BAD_访问(代码=1,地址=0x52879984)

游戏很好,直到我尝试回到游戏中,应用程序进入前台后崩溃

这不会发生在其他设备上,例如我的Iphone 7。我已经研究过了,我相信这可能与我的内存分配有关,因为我根本没有费心管理内存,希望swift和spritekit能帮我解决问题,因为这是一个简单的游戏

我尝试在应用程序崩溃之前中断它,并检查似乎存在的变量。我已尝试在UIApplication.didEnterBackgroundNotification中完全擦除游戏场景,并在willEnterForegroundNotification中创建新的游戏场景,但没有成功

我已在方案中打开地址消毒剂诊断工具,控制台打印出:

==2288==错误:AddressSanitizer:负大小参数:(大小=-1377549668) #0 0x7435c8在wrap_memset中(/var/containers/Bundle/Application/5AF965C7-7D31-4B7B-97D2-5DBA7BEDCA9E/xxxxxx.app/Frameworks/libclang_rt.asan_ios_dynamic.dylib:armv7s+0x175c8) 地址0x528e4908位于高阴影区域。 摘要:AddressSanitizer:wrap_memset中的负大小参数(/var/containers/Bundle/Application/5AF965C7-7D31-4B7B-97D2-5DBA7BEDCA9E/xxxxxx.app/Frameworks/libclang_rt.asan_ios_dynamic.dylib:armv7s+0x175c8) (lldb)

并且错误变为

线程1:EXC_坏访问(代码=2,地址=0x4a51c740)

我的appdelegate只是基本的,我有一个基本的gameviewcontroller,它在viewdidload函数中创建一个游戏场景

游戏在这个场景中按预期工作:适当暂停


非常感谢您的帮助。:)

你能在GitHub上分享代码吗?这样我就可以研究这个问题了???@ADProgress,解释这个问题/问题所需的所有材料都应该是发布在这里的问题的一部分,而不是在一些外部资源中@Andrew希望您也尝试过添加异常断点。如果不是,你应该试试。对于一个简单的游戏,你肯定使用了大量的内存lol。系统并不像你想象的那么宽容,你需要正确地管理你的内存。检查保留周期,这些通常是内存泄漏的罪魁祸首。@Knight0fDragon它确实使用了大量内存,尽管看起来很简单。我在游戏场景中声明了一个变量来访问我的视图控制器,比如so-var viewController:GameViewController!然后我在场景中使用这个变量来使用函数。这是正确的吗?我必须承认我对这件事很在行。我的gameViewController有一个名为GameSecene的变量,该变量初始化GameSecene类(运行该节目),然后在GameSecene中创建这个viewController变量。这就是我应该做的吗?