Генерация списка поддерживаемых устройств возможностями WURFL

Этот ответ очень похож на Bruno Hecktheuers, но вместо того, чтобы каждый, кто хочет соответствовать протоколу «Tappable», реализовал переменную «селектор», мы решили передать его в качестве параметра функции addTapGestureRecognizer:

protocol Tappable {
    func addTapGestureRecognizer(selector selector: Selector)
    func tapGestureDetected(gesture:UITapGestureRecognizer)
}

extension Tappable where Self: UIView {
    func addTapGestureRecognizer(selector selector: Selector)
        let gesture = UITapGestureRecognizer(target: self, action: selector)
        addGestureRecognizer(gesture)
    }
}

class TapView: UIView, Tappable {    
    func tapGestureDetected(gesture:UITapGestureRecognizer) {
        print("Tapped")
    }
}

, а затем просто передавайте селектор везде, где он используется:

addTapGestureRecognizer(selector: #selector(self.tapGestureDetected(_:)))

Таким образом, мы избегаем того, чтобы те, кто реализует этот протокол, должны были реализовывать переменную селектора, и мы также избегали отмечать всех используя этот протокол с "@objc". Чувствуется, что этот подход менее раздутый.

1
задан beggs 15 June 2009 в 06:38
поделиться

2 ответа

Я предлагаю использовать новый Java WURFL API для загрузки и просмотра базы данных возможностей. Это довольно гибкий способ, вы сможете довольно быстро реализовать свой псевдокод.

1
ответ дан 3 September 2019 в 01:25
поделиться

Я не знаю об API для этой задачи. Я сам сталкивался с этим и в итоге создал публичный сайт для решения этой задачи: http://wurfl.ditherandbicker.com/

Поскольку базовый XML-файл WURFL создан для переносимости, полная матрица возможностей устройства должна быть получена путем чтения из переменного числа "резервных устройств". Многие другие проекты на основе WURFL ведут себя так же. По моему опыту, вам действительно нужно перевести стандартную вложенную структуру данных в плоскую, если вы надеетесь получить достойную скорость поиска. Конечно, при этом теряются преимущества переносимости.

0
ответ дан 3 September 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: