gpt4 book ai didi

swift - EXC_BAD_ACCESS 发布但未调试

转载 作者:可可西里 更新时间:2023-11-01 00:38:04 26 4
gpt4 key购买 nike

我的产品在从 xcode 到模拟器和设备的调试中运行良好,但在临时存档和提交时无法运行。我将我的方案切换为作为发布运行,果然,它崩溃了。

以下代码部分在 var homeNav 行上生成 EXC_BAD_ACCESS 错误。此方法位于自定义 TabBar Controller 中。我还在下面包含了应用委托(delegate)调用,因为这是创建和显示 tabcontroller 的地方。

标签 Controller 调用:

//Sets up view on load
override func viewDidLoad() {
super.viewDidLoad()

//Setup and add home view
var homeNav = CMSSNavigationController(navigationBarClass:CMSSNavigationBar.self, toolbarClass:nil)
homeNav.viewControllers.append(CMSSHomeController(nibName:XIBS.VIEW_HOME, bundle:nil))
homeNav.tabBarItem.image = UIImage(named:Images.TAB_HOME)
homeNav.edgesForExtendedLayout = UIRectEdge.None

//Setup and add profile view
var profileNav = CMSSNavigationController(navigationBarClass:CMSSNavigationBar.self, toolbarClass:nil)

profileNav.viewControllers.append(CMSSProfileController(nibName:XIBS.VIEW_PROFILE, bundle:nil))
profileNav.tabBarItem.image = UIImage(named:Images.TAB_PROFILE)
profileNav.edgesForExtendedLayout = UIRectEdge.None

//Set tabs
self.viewControllers = NSArray(objects: homeNav, profileNav)

}

应用委托(delegate)调用:

 //Handles events after launch
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

//Setup Google Analytics
GAI.sharedInstance().trackUncaughtExceptions = true
GAI.sharedInstance().dispatchInterval = 20
//TODO: Set logging level for analytics
GAI.sharedInstance().trackerWithTrackingId(GoogleAnalytics.TRACKING_ID)

//Set Window
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

//Create root tab controller
var rootControl = CMSSTabBarController()
self.window?.rootViewController = rootControl
self.window?.makeKeyAndVisible();

return true
}

如果所有 UINavigationController 都声明为 CMSSNavigationController() 而未提供 CMSSNavigationBar,则代码在发布时运行良好。

为什么在发布时会出现这种情况,但在调试时不会出现?我看不到任何地方表明对象或引用未在此处正确分配。

最佳答案

问题是 UINavigationController 的构造函数中的工具栏类不能为 nil。然而,编译器不会提示这个。而且,虽然我不能说为什么,调试会允许它并运行良好,但发布不会。

使用线

var homeNav = CMSSNavigationController(navigationBarClass:CMSSNavigationBar.self, toolbarClass:UIToolbar.self)

完全解决了这个问题。

关于swift - EXC_BAD_ACCESS 发布但未调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002297/

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