Value (forKey :) for NSObject doesn't work in Swift 4
Trying Swift 4 in Xcode 9 beta.
For some reason I am getting a crash when using keyword access on NSObject.
Any ideas?
import Cocoa
class Person: NSObject {
var name = ""
var age = 0
}
let alpha = Person()
alpha.name = "Robert"
alpha.age = 53
alpha.value(forKey: "name")
// error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
+3
source to share
2 answers
ObjC inference was limited in Swift 4. You can mark your class objcMembers
so the compiler can generate ObjC compatible accessors
@objcMembers
class Person: NSObject {
var name = ""
var age = 0
}
Or revert the previous behavior by setting Swift 3 Objc Inference to On on Build Settings:
+4
source to share