ste*_*ris 2 release exc-bad-access uinavigationcontroller swift
我的产品在从xcode到模拟器和设备的调试中运行良好,但在归档和提交时没有运行.我将我的计划改为以释放方式运行,果然,它崩溃了.
下面的代码部分在该var homeNav行上生成EXC_BAD_ACCESS错误.此方法位于自定义TabBar控制器中.我还在下面包含了app委托调用,因为这是创建和显示tabcontroller的地方.
标签控制器调用:
//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)
}
Run Code Online (Sandbox Code Playgroud)
App代表致电:
//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
}
Run Code Online (Sandbox Code Playgroud)
如果所有UINavigationControllers都声明为CMSSNavigationController()不提供CMSSNavigationBar,则代码在发布时运行良好.
为什么这样的事情会在发布中发生,而不是调试?我看到无处可指示此处没有正确分配对象或引用.
问题是UINavigationController的构造函数中的工具栏类不能为nil.但是,编译器不会抱怨这一点.而且,虽然我不能说为什么,调试将允许它运行正常,但发布不会.
使用这条线
var homeNav = CMSSNavigationController(navigationBarClass:CMSSNavigationBar.self, toolbarClass:UIToolbar.self)
Run Code Online (Sandbox Code Playgroud)
完全解决了这个问题.
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |