Подтвердить что ты не робот

Нет '|' кандидаты создают ожидаемый контекстный тип результата "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

4b9b3361

Ответ 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())