Ios 将按钮的目标方法设置为另一个类中的函数

Ios 将按钮的目标方法设置为另一个类中的函数,ios,swift,Ios,Swift,我有一个从facebook获取照片信息的功能。我试图通过将它添加到另一个类并将button的目标函数设置为该类函数来抽象它 所以我有一个单身班 class FacebookManager { static let sharedInstance = FacebookManager() func getAlbums() { var request: FBSDKGraphRequest = FBSDKGraphRequest.init(graphPath: "/\(facebookID

我有一个从facebook获取照片信息的功能。我试图通过将它添加到另一个类并将button的目标函数设置为该类函数来抽象它

所以我有一个单身班

class FacebookManager  {

static let sharedInstance = FacebookManager()

func getAlbums() {

    var request: FBSDKGraphRequest = FBSDKGraphRequest.init(graphPath: "/\(facebookID!)/albums", parameters: ["fields": "cover_photo, name, description"])
    request.startWithCompletionHandler({ (connection, result, error) -> Void in
        // do stuff
    })

}
以及viewcontroller中用于调用该函数的按钮的方法

dummyButton?.addTarget(FacebookManager.self, action: Selector("getAlbums"), forControlEvents: .TouchUpInside)
但点击按钮后,我得到一个错误

2016-08-17 00:12:21.599 Lovrr[11807:3832289]***NSForwarding:警告:类“app.FacebookManager”的对象0x10717c888未实现方法签名选择器:-前方有故障 无法识别的选择器+[app.FacebookManager getAlbums]

在stackoverflow的某个主题中,我看到了在FacebookManager中子类化
NSObject
的建议。这样做之后,我又犯了一个错误

[app.FacebookManager getAlbums]:发送到类0x1047026f0的无法识别的选择器 2016-08-17 00:13:49.469应用程序[11892:3834005]***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[app.FacebookManager getAlbums]:未识别的选择器发送到类0x1047026f0”

如何正确地做我想做的事?

你的目标是错误的:

dummyButton?.addTarget(FacebookManager.self, action: Selector("getAlbums"), forControlEvents: .TouchUpInside)
FacebookManager.self
表示静态级别
getAlbums
是一种类方法。=> 无法识别的选择器

修复为:

dummyButton?.addTarget(FacebookManager.sharedInstance, action: Selector("getAlbums"), forControlEvents: .TouchUpInside)
你的目标是错误的:

dummyButton?.addTarget(FacebookManager.self, action: Selector("getAlbums"), forControlEvents: .TouchUpInside)
FacebookManager.self
表示静态级别
getAlbums
是一种类方法。=> 无法识别的选择器

修复为:

dummyButton?.addTarget(FacebookManager.sharedInstance, action: Selector("getAlbums"), forControlEvents: .TouchUpInside)

我有一个类似的问题,但是,这个解决方案不适用于我有一个类似的问题,但是,这个解决方案不适用于我