Я перебираю книгу «Программирование какао для OS X» от Big Nerd Ranch, и я застрял в главе 11 - работа с NSUndoManager.Как я понимаю, NSUndoManager теперь является просто UndoManager, но я не могу заставить остальную часть примера кода скомпилировать.
Соответствующий код:
class Document: NSDocument {
@objc dynamic var employees: [Employee] = []
func insertObject(employee: Employee, inEmployeesAtIndex index: Int) {
let undo: UndoManager = undoManager!
undo.prepare(withInvocationTarget: self).insertObjectFromEmployeesAtIndex(employees.count)
if !undo.isUndoing {
undo.setActionName("Add Person")
}
}
func insertObjectFromEmployeesAtIndex(index: Int) {
let employee: Employee = employees[index]
let undo: UndoManager = undoManager!
undo.prepare(withInvocationTarget: self).insertObject(employee: employee, inEmployeesAtIndex: index)
employees.remove(at: index)
}
}
Я получаю ошибкудля строк undo.prepare
в обеих функциях.Ошибка:
Value of type 'Any' has no member 'insertObjectFromEmployeesAtIndex'
и
Cast 'Any' to 'AnyObject' or use 'as!' to force downcast to a more specific type to access members