2014-11-10 2 views
0

Есть способ заменить обычный текст в action: в swift?Замена литеральной строки в действии:

Например UIBarButton код:

var barButton = UIBarButtonItem(title: "H", style: .Plain, target: self.someTarget(), action:"someStringAction:") 

Один из способов сделать это я считаю NSStringFromSelector(Selector(someStringAction())), но проблема в том, моя цель не self.

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

Общая точка вопроса: Как избежать использования литеральных строк при вызове методов?

+0

Не знаю, что вы пытаетесь сделать. Можете ли вы это прояснить? – Shuo

+0

Я не хочу использовать строку для вызова метода. Typo может строить без предупреждения. Я хочу иметь ошибку во время сборки, когда метода там нет. – Kuba

+0

Когда вы используете селектор, по дизайну не существует ошибки времени компиляции. Селектор очень динамический, который отправляется во время выполнения. – Shuo

ответ

0

Либо полностью замените UIBarButtonItem на новую селекторную строку или измените тег на UIBarButtonItem. Тег будет представлять собой определенное действие, которое необходимо предпринять при вызове селектора.

+0

Я не понимаю, что вы подразумеваете под полной заменой новой строкой селектора. – Kuba

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