2015-01-15 2 views
0

Я пытаюсь сделать что-то очень простое в Swift - экземпляр UIBarButtonItem:Programatically инстанцировании UIBarButtonItem бросками отсутствует аргумент исключение

let btnImg = UIImage(named: "imgName") 
let btn = UIBarButtonItem(image: btnImg, style: .Plain, target: self, action: doSomthing) 

Этот код результатов в неисправности сборки:

Missing argument for parameter 'landcapeImagePhone' in call 

Согласно the docs , обе функции доступны:

initWithImage: style: target: action:

init(image image: UIImage?, 
    style style: UIBarButtonItemStyle, 
    target target: AnyObject?, 
    action action: Selector) 

initWithImage: landscapeImagePhone: стиль: Цель: Действие:

init(image image: UIImage?, 
    landscapeImagePhone landscapeImagePhone: UIImage?, 
    style style: UIBarButtonItemStyle, 
    target target: AnyObject?, 
    action action: Selector) 

Если я реализую второй инициализации, хотя, я получаю следующее сообщение об ошибке:

Extra argument 'landscapeImagePhone' in call 

Кто-нибудь знает способ, которым я могу достичь того, чего я пытаюсь достичь? Это ошибка в Swift/Xcode? Я запускаю Xcode 6.1.1.

Я сделал чистый (Cmd + SHIFT + K) и сборку чистой (Cmd + alt + SHIFT + K).

+0

как 'doSomthing' объявлен ? – gabuh

+0

func doSomething() {...} – djbp

+0

Затем используйте 'let btn = UIBarButtonItem (image: btnImg, style: .Plain, target: self, action:" doSomthing ")' обратите внимание на строку в конце – gabuh

ответ

3

Если doSomthing функция без параметров, правильный способ для создания экземпляра UIBarButtonItem должно быть:

let btn = UIBarButtonItem(image: btnImg, style: .Plain, target: self, action: "doSomthing") 

Проверить этот пост для получения информации о Selectors в скор: @selector() in Swift?

+0

Спасибо - что смешная ошибка компилятора. – djbp

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