0

当我尝试声明方法时出现此错误:

没有使用 Objective-C 选择器声明的方法

这是代码:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("itemDroppedOnCharacter:"), name: "onTargetDropped", object: nil)

func itemDroppedOnCharacter(notif: AnyObject) {

    print("Item Dropped On Character")

}

我究竟做错了什么?

4

1 回答 1

0

Xcode 7.3 更改了选择器。您需要显式声明属于您的类的选择器:

class MyClass {
    func someFunc() {
        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyClass.itemDroppedOnCharacter(_:)), name: "onTargetDropped", object: nil)
    }

    @objc func itemDroppedOnCharacter(notif: AnyObject) {
        print("Item Dropped On Character")
    }
}

如果您不想添加以将选择器公开给 Objective-C,您也可以MyClass继承 from :NSObject@objc

class MyClass: NSObject {
    func someFunc() {
        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyClass.itemDroppedOnCharacter(_:)), name: "onTargetDropped", object: nil)
    }

    func itemDroppedOnCharacter(notif: AnyObject) {
        print("Item Dropped On Character")
    }
}
于 2016-04-07T17:23:24.850 回答