ios - 在视图控制器之间传递字典时出错:[__SwiftValue renderingMode]:
问题描述
我正在尝试通过 NotificationCenter 通过字典传递数据。这是我的代码。
搜索视图控制器:
func addBook() {
let selectedBook = ["title": "A Guide to Bugs"]
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "Pass.Book"), object: nil, userInfo: selectedBook])
}
@IBAction func goBack(_ sender: Any) {
self.navigationController?.popViewController(animated: true)
}
主视图控制器:
var book: [String: String]!
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(self.reload(_:)), name: NSNotification.Name("Pass.Book"), object: nil)
}
@objc func reload(_ notification: NSNotification) {
let passedBook = ["title": (notification.userInfo?["title"] as! String)]
self.book = passedBook
self.settingsTableView.reloadData()
}
该行self.book = passedBook
是导致问题的原因。出于某种原因,代码无法将传递的字典分配给加载视图时初始化的字典,这给了我这个错误。
[__SwiftValue renderingMode]:无法识别的选择器发送到实例 0x6000013c6d00
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__SwiftValue renderingMode]:无法识别的选择器发送到实例 0x600003f78780”
libc++abi.dylib:以 NSException 类型的未捕获异常终止
有谁知道如何修复这个错误?是我的代码有问题还是 Xcode 错误?
解决方案
推荐阅读
- python - Tensorflow:使用 tf.function 可能的张量列表?
- python - 在python中用单引号初始化一个元组
- python - 在 git 操作中找不到 pylint
- python - XGBoostError:[10:10:03] /workspace/src/tree/updater_gpu_hist.cu:1407:gpu_hist 中的异常:NCCL 失败
- r - 带有占位符的 dbExecute 不能在 RSQLite 中可靠地工作
- javascript - Angular - 在组件的新选项卡中打开链接?
- python - 如何使用 Python 子进程从 SVN 命令行获得正确的 unicode 答案?
- javascript - 为什么Error对象可以打印纯字符串消息
- unity3d - 为什么检查器中的着色器名称与文件名称不同?
- android - 检查 3gp 文件是 Android 中的音频/视频吗?