我有以下协议定义:
@objc protocol PersonDataStore {
func findPersonWithId(remoteId: String, completionBlock: ((Person) -> Void)!)
// ...
}
我得到的错误是第二个参数无法在Objective-C中表示。我研究了块/闭包主题,但我很难理解它,因为它在概念上是不同的。
这只是一个语法问题,还是真的不可能在Swift中定义一个带闭包的Objective-C协议?
答案 0 :(得分:2)
我认为您的问题是您的班级Person
不是NSObject
的子类。将@objc
添加到Person
类的声明中,或将其设置为NSObject
的子类,并且您的协议定义应该有效。