objective-c - `attemptRecovery(fromError:optionIndex:)` 在 NSDocument 的 Swift 子类的超类中找不到
问题描述
我有一个 objC NSDocument 子类,它本身是 Swift 版本的子类。ObjC 版本调用BOOL result=[self attemptRecoveryFromError:error optionIndex:recoveryOptionIndex];
,由 Swift 子类实现。
在 Swift 子类中,对于某些错误,调用 super 如下:
guard let (error as NSError).domain == "someDomain" else {
return super.attemptRecovery(fromError: error, optionIndex: recoveryOptionIndex)
}
这个方法不是由 ObjC 子类实现的,而是应该由 NSObject 实现的,但是在运行时我得到以下错误:
-[App.AppDocument attemptRecoveryFromError:optionIndex:]: unrecognized selector sent to instance 0x60000350d340
为什么找不到方法?它是否可能与错误的类型不一定是 NSError 有关?
解决方案
推荐阅读
- laravel - Laravel:没有找到数据
- java - 有人可以解释一下 Eckel 的“On Java 8”一书中关于接口的例子吗?
- laravel - 如何连接 Laravel Lumen 和 Stackdriver
- java - 如何在 Spark 中确定最佳 shuffle 分区数
- python - 使用多线程同时打开 2 个 Webdriver
- javascript - MongoDB在NodeJS中获取字段的值
- airflow - 有没有办法设置气流 dag,如果 dag-b 仍在运行,则 dag-a 不会运行,反之亦然?
- json - 解析 JSON 数组,其中每个成员具有不同的架构但相同的一般结构
- sql-server - 我可以通过链接服务器调用 Azure 数据库中的存储过程吗?
- python - 检查两个 Python 集是否至少有一个共同元素