Я работаю над добавлением некоторых тестов в библиотеку Swift, которая использует undoManager
. В демо-версии библиотеки, добавив следующую печать в viewDidAppear:
, напечатано NSUndoManagerObject
.По умолчанию undoManager is nil при тестировании
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
print(undoManager)
}
я написал еще ViewController для испытаний, и когда у меня есть один и тот же код в ViewController-х viewDidAppear:
, nil
печатается.
Я создаю ViewController для испытаний с помощью следующего кода:
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
let storyboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType))
viewController = storyboard.instantiateInitialViewController() as! ViewController
viewController.viewDidLoad()
viewController.viewDidAppear(false)
// Test and Load the View at the Same Time!
XCTAssertNotNil(viewController.view)
}
Я называю becomeFirstResponder()
внутри viewDidLoad:
в ViewController в.
Я хочу проверить логику, которая использует значение по умолчанию undoManager
, поэтому мне нужно выяснить, почему это nil
. Я попытался назначить по умолчанию undoManager
новый экземпляр NSUndoManager
, но это свойство только для чтения.
Вот Github repository, если вам интересно посмотреть код.
Вызовите 'loadView' непосредственно перед' viewDidLoad'. – nhgrif
@nhgrif Просто попробовал это без везения :(Спасибо в любом случае! – Dehli