“unsafeMutableAddressor:Swift.String”,引自:..“

我收到一个错误:

Undefined symbols for architecture x86_64: "DirectBistro.DBTabBarOrderedIndexesKey.unsafeMutableAddressor : Swift.String", referenced from: DirectBistroUITests.TabBarControllerTests.setUp (DirectBistroUITests.TabBarControllerTests)() -> () in TabBarControllerTests.o ld: symbol(s) not found for architecture x86_64

这是我简单的UITest类:

 import XCTest @testable import DirectBistro class TabBarControllerTests: XCTestCase { override func setUp() { super.setUp() let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject([], forKey: DBTabBarOrderedIndexesKey) defaults.synchronize() } } 

这是它在DBTabBarController.swift定义DBTabBarController.swift

 let DBTabBarOrderedIndexesKey = "TabBarOrderedIndexesKey" 

信息窗格:

在此处输入图像描述

常规窗格:

在此处输入图像描述

结论是: 它不会起作用

我向Apple报告这是一个错误,并得到了回复:

UI测试的执行方式与unit testing不同 – unit testing在应用程序进程内运行,因此可以访问应用程序代码。 UI测试在应用程序外部的单独进程中执行,因此可以模拟用户与应用程序交互的方式。 您不希望自己能够通过UI测试访问您的应用类。