【发布时间】:2014-10-14 22:54:59
【问题描述】:
我有一个 Swift 项目,其中包含两个 UITableViewControllers。第二个UITableViewController 链接到名为Model 的MVC 模型。根据我在第一个UITableViewController中选择的UITableViewCell,我想用Ints或Strings初始化Model的一些属性。因此,我决定使用Printable 协议类型定义这些属性。同时,我想对这些属性之一执行键值观察。
现在,Model 看起来像这样:
class Model: NSObject {
let title: String
let array: [Printable]
dynamic var selectedValue: Printable //error message
init(title: String, array: [Printable], selectedValue: Printable) {
self.title = title
self.array = array
self.selectedValue = selectedValue
}
}
这里的问题是selectedValue声明行出现以下错误信息:
属性不能标记为动态,因为它的类型不能 用Objective-C表示
如果我转到 Xcode 问题导航器,我还可以阅读以下行:
协议“可打印”不是“@objc”
有什么解决办法吗?
【问题讨论】:
-
您正在使用 KVO,因此您应该从 Objective-C 的角度来看待它。如果这是 Objective-C,你会如何声明
selectedValue? -
好吧,好问题。我敢打赌我会使用
id...
标签: ios objective-c swift protocols key-value-observing