【发布时间】:2017-06-18 19:57:42
【问题描述】:
我正在尝试将可可绑定与 nstableview 一起使用,但我在绑定 textfield 的参数值时遇到了一些问题:
我正在使用这个代码,类:
class Person : NSObject {
var givenName:String
var familyName:String
var age = 0
var lol = 0
override init() {
givenName = "given"
familyName = "family"
lol = 36
super.init()
}
init(givenName:String, familyName:String, age:Int) {
self.givenName = familyName
self.familyName = givenName
self.age = age
self.lol = 36
super.init()
}
和视图控制器:
class ViewController: NSViewController {
@IBOutlet weak var tableViewL: NSTableView!
@IBOutlet var superResultsController: NSArrayController!
@objc dynamic var array = [Person]()
override func viewDidLoad() {
super.viewDidLoad()
array.append(Person(givenName: "sas", familyName: "gfg", age: 10))
array.append(Person(givenName: "sddsgds", familyName: "gfg", age: 10))
array.append(Person(givenName: "uoijh", familyName: "gfg", age: 10))
print(superResultsController.arrangedObjects)
}
我发现我无法将文本字段绑定到我班级的任何变量 - 应用程序因 bad_instruction 错误而崩溃。
【问题讨论】:
-
我试图复制您的问题,但不能;在my project 中,复制并粘贴您的代码并设置您记录的绑定后,一切都按预期工作。
-
@PaulPatterson 您使用的是 Xcode 9 还是 Xcode 8?
-
@PaulPatterson 我正在使用 Xcode 9 和 swift 4,也许是这样
-
@Willeke,看来我的帖子确实是重复的,不幸的是我在搜索时没有找到它。我用 objc dynamic 标记了类中的属性,它可以工作。但我仍然不明白为什么我必须用 objc dynamic 标记属性而有人不必这样做。
标签: swift macos cocoa nstableview cocoa-bindings