Я исследовал эту тему в прошлый раз. Я нашел ответ. До SDK 10 вы можете установить интенсивность белого цвета
Итак:
target.light?.color = UIColor(white: intensity/1000.0, alpha: 1.0)
действует так же, как
target.light?.intensity = intensity
Проблема решена. Может быть, кто-то в будущем будет использовать мой решить:)
В XPath 1.0 (который является, я верю, лучшее можно добраться с PHP SimpleXML), необходимо было бы использовать translate()
функционируйте для создания все-строчного вывода из входа смешанного случая.
Для удобства я перенес бы его в функцию как это:
function findStopPointByName($xml, $query) {
$upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"; // add any characters...
$lower = "abcdefghijklmnopqrstuvwxyzæøå"; // ...that are missing
$arg_stopname = "translate(StopName, '$upper', '$lower')";
$arg_query = "translate('$query', '$upper', '$lower')";
return $xml->xpath("//StopPoint[contains($arg_stopname, $arg_query)");
}
Как мера по очистке я или полностью запретил бы или вышел бы из одинарных кавычек в $query
, потому что они повредят Вашу строку XPath, если они будут проигнорированы.
В XPath 2.0 можно использовать lower-case()
функция, которая является unicode знающий, таким образом, она обработает прекрасные символы неASCII.
contains(lower-case(StopName), lower-case('$query'))
Для получения доступ XPath 2.0 к Вам, нужен синтаксический анализатор XSLT 2.0. Например, САКС. Можно получить доступ к нему от PHP через JavaBridge.
Кроме того:
$xml-> xpath ("//StopPoint [содержит (StopName, '$query')]");
Необходимо будет разделить любые символы апострофа от $query, чтобы не повреждать выражение.
В XPath 2.0 можно удвоить кавычку, используемую в разделителе помещать ту кавычку в строковый литерал, но в XPath 1.0 невозможно включать разделитель в строку.
Неанглийские имена не должны быть проблемой. Просто добавьте их к своему XPath. (XML определяется как использование Unicode).
Что касается нечувствительности к регистру...
XPath 1.0 включает следующее утверждение:
Две строки равны, если и только если они состоят из той же последовательности символов UCS.
Таким образом, даже использование явных предикатов на локальном имени не поможет.
XPath 2 включает функции для отображения случая. Например, fn:upper-случай
Дополнительный: использование XPath переводит функцию, должен позволить случаю, отображающемуся фальсифицироваться в XPath 1, но вход должен будет включать каждую кодовую точку в корпусе, в которой Вы и Ваши пользователи будете когда-либо нуждаться:
"test" = translate($inputString, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")