Bartłomiej Semańczyk Bartłomiej Semańczyk - 4 years ago 274
Swift Question

"unsafeMutableAddressor : Swift.String", referenced from:.."

I got an error:


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



This is my simple
UITest
class:

import XCTest
@testable import DirectBistro

class TabBarControllerTests: XCTestCase {

override func setUp() {
super.setUp()

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject([], forKey: DBTabBarOrderedIndexesKey)
defaults.synchronize()
}
}


This is how it is defined in
DBTabBarController.swift
:

let DBTabBarOrderedIndexesKey = "TabBarOrderedIndexesKey"


Info pane:

enter image description here

General pane:

enter image description here

Answer Source

The conslusion is: it is not going to work.

I report it as a bug to Apple, and got a response:

UI tests execute differently from Unit tests - Unit tests run inside your application process so they can access your application code. UI tests execute in a separate process, outside your application, so they can simulate how the user interacts with the application. It’s not expected that you will be able to access your app class from a UI test.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download