【问题标题】:Can you run KVC functions in Xcode Playgrounds?你可以在 Xcode Playgrounds 中运行 KVC 函数吗?
【发布时间】:2018-05-18 01:46:14
【问题描述】:

当我尝试将代码输入到 Playground 时,我正在关注 KVC 和 KVO 的教程,但它无法运行。我收到错误“以 NSException 类型的未捕获异常终止”。我什至尝试创建单个应用程序应用程序并将信息输入到 viewController 以查看发生了什么,但它仍然无法构建,这提供了对象不符合键编码的错误。我真的很想看看这个作品,我做错了什么?

import UIKit
import Foundation


//this is a reference object which means when it is copied, it will copy a reference to the same instance and not a brand new value like a value type does
class Student: NSObject {
    var name: String = ""
    var gradeLevel: Int = 0
}


let seat1 = Student()
seat1.setValue("Kelly", forKey: "name")

【问题讨论】:

  • 您的问题与使用游乐场无关。无论在何处运行,都会出现错误: "'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: 这个类不符合键名的键值编码。' "

标签: swift kvc


【解决方案1】:

您的问题不在于操场。你的问题是要使用Objective-C KVC机制,你需要用@objc标记属性。

class Student: NSObject {
    @objc var name: String = ""
    var gradeLevel: Int = 0
}

添加将修复崩溃。

【讨论】:

  • 我认为从 NSObject 子类化可以处理与 Objective-C 运行时的接口?是不是这样,还是曾经是这样?
  • 非常感谢!我正在阅读 ,也遇到了这个问题。
猜你喜欢
  • 1970-01-01
  • 2016-02-13
  • 2021-03-26
  • 2011-01-25
  • 2015-12-24
  • 2013-04-15
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
相关资源
最近更新 更多