Нет '|' кандидаты создают ожидаемый контекстный тип результата "NSTextStorageEditActions"
Я просмотрел Учебник по текстовому набору на raywenderlich.com и прямая
edited(.EditedCharacters | .EditedAttributes, range: range, changeInLength: (str as NSString).length - range.length)
выдает следующую ошибку:
No '|' candidates produce the expected contextual result type 'NSTextStorageEditActions'
Ошибка исчезает, когда я изменяю первый аргумент на:
edited(.EditedCharacters, range: range, changeInLength: (str as NSString).length - range.length)
Я также пробовал использовать "OR" и "||" без каких-либо успехов.
Swift 2.2 и iOS 9.2
Ответы
Ответ 1
@dfri верен. Чтобы проиллюстрировать другой пример использования трубы, "|", это когда выполняется автоматическое определение маски для UIImageView следующим образом:
imageView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight, ...]
Конечно, вы заменили бы ...
на другие параметры UIViewAutoresizing
.
Удачи!
Ответ 2
Поместите их все в массив, как показано ниже:
вместо трубы
let timeDateComponents = calendar.components(NSCalendarUnit.Hour| NSCalendarUnit.Minute| NSCalendarUnit.Second, fromDate: NSDate())
попробуйте это
let timeDateComponents = calendar.components([NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second], fromDate: NSDate())