2016-08-16 2 views
0

У меня есть функция, которая извлекает информацию о фотографиях из facebook. Я пытаюсь отвлечь его, добавив его в другой класс и задав целевую функцию кнопки этой функции класса.Установка целевого метода кнопки на функцию из другого класса

Так что я одноплодной класс

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: предупреждение: объект 0x10717c888 класса 'app.FacebookManager' делает n OT реализации methodSignatureForSelector: - проблемы впереди Непризнанный селектор + [app.FacebookManager getAlbums]

в какой-то теме в StackOverflow я увидел совет подклассов NSObject в FacebookManager. После этого я получаю другую ошибку

[app.FacebookManager getAlbums]: непризнанный селектор направлен классу 0x1047026f0 2016-08-17 00: 13: 49.469 приложения [11892: 3834005] *** Нагрузочного приложения из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '+ [app.FacebookManager getAlbums]: непризнанные селектор послал к классу 0x1047026f0'

Как делать то, что я хочу, правильно?

ответ

1

Ваша цель не так:

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

FacebookManager.self статична. getAlbums - метод класса. => непризнанного селектора

Попробуйте изменить:

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

+0

Это просто отлично работает! Большое спасибо! –

+0

@AlexeyK Добро пожаловать. Пожалуйста, отметьте ответ, если он правильный. – anhtu

Смежные вопросы