大佬教程收集整理的这篇文章主要介绍了单元测试 – UIApplication.sharedApplication().委托作为AppDelegate在swift单元测试中使用它导致EXC_BAD_ACCESS,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
func testGetAppDelegate(){ let someDelegate = UIApplication.sharedApplication().delegate let appDelegate = someDelegate as AppDelegate //EXC_BAD_ACCESS here XCTAssertNotNil(appDelegate,"Failed to get cast pointer") }
AppDelegate类设置为public,因此从访问级别来看不是问题.
在同一个测试目标中使用objective-c可行.简单说明下面:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
当您这样做时,AppName.AppDelegate和AppNameTests.AppDelegate成为不同的类.然后,UIApplication.sharedApplication().delegate返回AppName.AppDelegate实例,但您尝试将其强制转换为AppNameTests.AppDelegate类型.这会导致EXC_BAD_ACCESs.
而不是那样,你必须从你的应用程序模块导入它.
import UIKit import XCTest import AppName // <- HERE class AppNameTests: XCTESTCase { // tests,tests... }
并且,必须将AppDelegate类及其方法和属性声明为public才能从测试模块中看到.
import UIKit @UIApplicationMain public class AppDelegate: UIResponder,UIApplicationDelegate { public var window: UIWindow? public func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. return true } // ...
同样,请务必从Test目标成员中删除AppDelegate.swift.
以上是大佬教程为你收集整理的单元测试 – UIApplication.sharedApplication().委托作为AppDelegate在swift单元测试中使用它导致EXC_BAD_ACCESS全部内容,希望文章能够帮你解决单元测试 – UIApplication.sharedApplication().委托作为AppDelegate在swift单元测试中使用它导致EXC_BAD_ACCESS所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。