Подтвердить что ты не робот

Swift Bindings не будет работать Xcode 6 Beta 5

Я делаю простую тестовую программу, используя привязки в Swift на OSX. Имея NSTableView, NSArrayController и класс модели, я пытаюсь подключить их вместе, но безуспешно! Компиляция сборки, но мгновенно дает эту ошибку: Тема 1: EXC_BAD_ACCESS (код = 1, адрес = 0x0)

Код выглядит следующим образом:
класс модели:

import Foundation

class Name {
   var firstName = "Brook"
   var lastName = "Brooklyn"
}

просмотр контроллера:

import Cocoa

class ViewController: NSViewController {

    dynamic var names = [Name]()  // serves as the content for Array-Controller

    override func viewDidLoad() {
        super.viewDidLoad()

        // populate array
        var name1 = Name()
        var name2 = Name()

        names.append(name1)
        names.append(name2)

}

override var representedObject: AnyObject? {
    didSet {
    // Update the view, if already loaded.
    }

}

}

Я установил контроллер массива для использования моего класса "Имя" и добавил ключи "firstName" и "lastName"

Вот раскадровка:

StoryboardBindings1Bindings2

Кто-нибудь уже успел установить привязки на Xcode 6 Beta 5? Любая помощь приветствуется!

Спасибо!

EDIT: Как я уже сказал, я попытался добавить ключевое слово "dynamic" к свойству, чтобы включить привязки, но он дает ту же ошибку и не работает.
Я также попытался подклассифицировать класс "Имя" из NSObject, чтобы использовать старую поддержку Objective-C от Cocoa, но привязки все еще не работают!

4b9b3361

Ответ 1

Для бета-версии 5 требуется явно указать ваши свойства как dynamic, чтобы работать с KVO/привязками:

dynamic var firstName = "Brook"

Дополнительную информацию см. в разделе модификатора декларации динамического выражения примечания к выпуску.

Динамическое ключевое слово позволяет использовать функции KVO, проксирования и другие расширенные функции Cocoa для надежной работы с объявлениями Swift.

Ответ 2

Вам нужно выбрать Table View Cell и привязать его к Table Cell View с помощью соответствующего objectValue. Я не знаю, как избавиться от восклицательного знака/предупреждения, но он работает.

enter image description here

Ответ 3

Используете ли вы таблицы NSCell или NSView? Как вы настраиваете привязки, для них разные. То, что вы делаете, выглядит правильно для таблиц, основанных на NSCell.

Когда я настраивал NSTableView сегодня, это была таблица, основанная на NSView, поэтому мне пришлось выбрать TextField и привязать к "Table Cell View" с помощью Path Key Path "objectValue.name"

См. руководство по программированию таблиц для Mac: заполнение вида таблицы с помощью Cocoa документация привязок