我写了一个协议,其中有一些@optional
方法,但Swift编译器崩溃了。下面的代码可以正常运行:
protocol SessionDelegate {
// TODO these should all be optional
func willOpenSession(session: Session);
func didOpenSession(session: Session);
func didFailOpenningSession(session: Session, error: NSError!);
func willCloseSession(session: Session);
func didCloseSession(session: Session);
}
这个不行:
@objc protocol SessionDelegate {
@optional func willOpenSession(session: Session);
@optional func didOpenSession(session: Session);
@optional func didFailOpenningSession(session: Session, error: NSError!);
@optional func willCloseSession(session: Session);
@optional func didCloseSession(session: Session);
}
老实说,使用
@objc
已经足以导致编译器崩溃。有没有什么解决方法?
Session
里声明了NSObject
的子类吗? - Nate Cook