as.logical (c (0,0,0,1)) == c (F, F, F, T)
blockquote>Объяснение
В
R
значенияnumeric
обрабатываются иначе, чем значенияlogical
.В вашем сценарии, поскольку
2
является первым элементом массива, он возвращается для второй операции подмножества (и 0-го элемента нет).PS Только для нескольких операций (например,
==
) логические значения сначала приводятся к числовым. Спасибо @IceCreamTouchan, чтобы добавить это в комментариях выше.
Просто установите свойства UIBarButtonItem target
и action
напрямую.
Swift 5:
Извлечение к расширениям:
extension UIBarButtonItem {
static func nextBtn(target: AnyObject, action: Selector) -> UIBarButtonItem {
let title = "Next"
return button(title: title, target: target, action: action)
}
private static func button(title: String, target: AnyObject, action: Selector) -> UIBarButtonItem {
return UIBarButtonItem(title: title, style: .done, target: target, action: action)
}
}
Вызов в коде:
navigationItem.rightBarButtonItem = .nextBtn(target: self, action: #selector(rightBarButtonAction))
Действие:
@objc func rightBarButtonAction() {
Swift.print("Button tapped!")
}
Довольно легкий добавить новые кнопки к этой фабрике.
Я столкнулся с похожей проблемой... Я предполагаю, что вы имеете в виду, что если ваш UIButton не является частью UITabBar для вызова btnClicked, то он работает должным образом. Если вы предлагаете именно эту проблему, то проверьте ваш метод btnClicked и измените его с:
-btnClicked:(id)sender
на
-(void) btnClicked:(id)sender
that, и объявите btnClicked в заголовочном файле...
Вот как я настраиваю кнопку в tabbarbuttonitem:
UIBarButtonItem *exampleButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"button.png"] style:UIBarButtonItemStylePlain target:self action:@selector(btnClicked:)];