如何在 Objective-C 中创建 Swift 对象?

Ale*_*xis 5 objective-c nsobject swift

如果你像这样定义一个 swift 类

@objc class Cat {

}
Run Code Online (Sandbox Code Playgroud)

很快你就可以做

var c = Cat()
Run Code Online (Sandbox Code Playgroud)

Cat但是如何在 Objective-C 中创建一个实例呢?

子类化NSObject之所以有效,是因为您可以“alloc-init”,但是我们可以在不子类化 Objective-C 类的情况下实现这一点吗?

Rob*_*ier 4

最直接的方法是CatNSObject. 如果你做不到这一点,你将需要创建一个类方法或一个返回Cat.

@objc class Cat {
    class func create() -> Cat {
        return Cat()
    }
}
func CreateCat() -> Cat {
    return Cat()
}


Cat *cat = [Cat create];
Cat *cat = CreateCat();
Run Code Online (Sandbox Code Playgroud)