Если вы ищете очень простую реализацию. (Это работало для меня в Swift 2)
let imageURL = NSURL(string: "https://farm2.staticflickr.com/1591/26078338233_d1466b7da2_m.jpg")
let imagedData = NSData(contentsOfURL: imageURL!)!
imageView?.image = UIImage(data: imagedData)
Я реализовал в представлении таблицы с пользовательской ячейкой, которая имеет только изображение
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("theCell", forIndexPath: indexPath) as! customTableViewCell
let imageURL = NSURL(string: "https://farm2.staticflickr.com/1591/26078338233_d1466b7da2_m.jpg")
let imagedData = NSData(contentsOfURL: imageURL!)!
cell.imageView?.image = UIImage(data: imagedData)
return cell
}
Во-первых, вне кода страны, нет никакого реального стандарта. О лучшем можно сделать, распознают, кодом страны, какая страна конкретный номер телефона принадлежит и соглашение с остальной частью числа согласно тому национальному формату.
Обычно однако, телефонное оборудование и такой стандартизированы так, можно почти всегда повреждать данный номер телефона в следующие компоненты
С этим методом, можно потенциально разделить числа, таким образом, что можно найти, например, людей, которые могли бы быть друг близко к другу, потому что у них есть та же страна, область и коды станций. С сотовыми телефонами, который больше не является чем-то, которое можно рассчитывать все же.
Далее, в каждой стране там отличаются стандарты. Можно всегда зависеть от (AAA) EEE-LLLL в США, но в другой стране у Вас могут быть обмены в городах (AAA) LLL EE и просто номера строки в сельских районах (AAA) LLLL. Необходимо будет запустить наверху в дереве некоторой формы и отформатировать их, поскольку у Вас есть информация. Например, код страны 0 имеет известный формат для остальной части числа, но для кода страны 5432 Вы, возможно, должны были бы исследовать код зоны перед пониманием остальной части числа.
можно также хотеть обработать vanity
числа такой как (800) Lucky-Guy
, который требует распознавания, что, если это - американское число, существует слишком много цифр (и Вам, возможно, понадобится к полному представлению для рекламы или других целей), и что в США буквы отображаются на числа по-другому, чем в Германии.
можно также хотеть сохранить все число отдельно как текстовое поле (с интернационализацией), таким образом, можно возвратиться позже и повторно проанализировать числа, когда вещи изменяются, или как резервное копирование в случае, если кто-то отправляет плохой метод для парсинга формата конкретной страны и теряет информацию.
Где Вы получаете номера телефона от? Если Вы получите их от части телефонной сети, Вы получите строку цифр и типа числа и плана, например,
441234567890 типов/планов 0x11 (что означает международный E.164)
В большинстве случаев, лучшая вещь сделать состоит в том, чтобы сохранить все их, как они и нормализуют для дисплея, хотя нормализованные числа хранения могут быть полезными, если Вы хотите использовать их в качестве уникального ключа или подобный.
Я пошел бы для freetext поля и поля, которое содержит чисто числовую версию номера телефона. Я оставил бы представление номера телефона пользователю и использовал бы нормализованное поле специально для сравнений номера телефона в основанных на TAPI приложениях или при попытке найти двойные записи в телефонном каталоге. Конечно, это не повреждает предоставление пользователю со схемой записи, которая добавляет аналитику как отдельные поля для кода страны (при необходимости), кода зоны, основания системы счисления и расширения.
Что относительно того, чтобы хранить freetext столбец, который показывает удобную для пользователя версию номера телефона, затем нормализованная версия, которая удаляет пробелы, скобки и расширяется '+'. Например:
Удобный для пользователя: +44 (0) 181 4642542
Нормализованный: 00441814642542
Я нахожу, что большинство веб-форм правильно допускает код страны, код зоны, тогда оставление 7 цифрами, но почти всегда забывает позволять запись расширения. Это почти всегда заканчивает тем, что заставило меня произнести сердитые слова, с тех пор на работе у нас нет регистратора, и мое расширение # необходимо для достижения меня.
я нахожу, что большинство веб-форм правильно допускает код страны, код зоны, тогда оставление 7 цифрами, но почти всегда забывает позволять запись расширения. Это почти всегда заканчивает тем, что заставило меня произнести сердитые слова, с тех пор на работе у нас нет регистратора, и мое расширение # необходимо для достижения меня.
я должен был бы проверить, но я думаю, что наша схема DB подобна. Мы держим код страны (он мог бы принять значение по умолчанию в США, не уверенные), код зоны, 7 цифр и расширение.
Я использовал 3 различных способа сохранить номера телефона в зависимости от требований использования.
Я думаю, что произвольный текст (возможно, varchar (25)) является наиболее широко используемым стандартом. Это будет допускать любой формат, или внутренний или международный.
я предполагаю, что основной ведущий фактор может быть то, как точно Вы запрашиваете эти числа и что Вы делаете с ними.
Возможно, хранение номера телефона разделяет в различных столбцах, допуская пустые или пустые записи?
Хорошо, таким образом, на основе информации на этой странице, вот запуск на блоке проверки допустимости международного телефонного номера:
function validatePhone(phoneNumber) {
var valid = true;
var stripped = phoneNumber.replace(/[\(\)\.\-\ \+\x]/g, '');
if(phoneNumber == ""){
valid = false;
}else if (isNaN(parseInt(stripped))) {
valid = false;
}else if (stripped.length > 40) {
valid = false;
}
return valid;
}
Свободно на основе сценария от этой страницы: http://www.webcheatsheet.com/javascript/form_validation.php
Ищите E.164. В основном Вы храните номер телефона как код, запускающийся с префикса страны и дополнительного суффикса АТС. Дисплей является тогда проблемой локализации. Проверка может также быть сделана, но это - также проблема локализации (на основе префикса страны).
, Например, +12125551212+202 был бы отформатирован в en_US локали как (212) 555-1212 x202. Это имело бы другой формат в en_GB
или de_DE
.
существует довольно мало информации там о ITU-T E.164, но это довольно загадочно.
Мне лично нравится идея сохранить нормализованный varchar номер телефона (например, 9991234567) тогда, конечно, форматируя тот номер телефона, встроенный, поскольку Вы отображаете его.
Этот путь все данные в Вашей базе данных являются "чистыми" и свободными от форматирования
Страница Wikipedia на E.164 должна сказать Вам все, что необходимо знать.
Вот моя предложенная структура, я ценил бы обратную связь:
телефонное поле базы данных должно быть varchar (42) со следующим форматом:
CountryCode - Расширение Номер x
Так, например, в США, мы могли иметь:
1-2125551234x1234
Это представило бы американское число (код страны 1) с кодом зоны/числом (212) 555 и расширений 1234 года 1234.
Выделение кода страны с тире ясно дает понять код страны кому-то, кто просматривает данные. Это не строго необходимо, потому что коды страны" коды префикса " (можно считать их слева направо, и Вы всегда будете в состоянии однозначно определить страну). Но, так как коды страны имеют переменные длины (между 1 и 4 символами в данный момент), Вы не можете легко сказать сразу код страны, если Вы не используете своего рода разделитель.
я использую "x" для разделения расширения, потому что иначе действительно не было бы возможно (во многих случаях) выяснить, который был числом и который был расширением.
Таким образом можно сохранить все число, включая код страны и расширение, в поле единой базы данных, которое можно тогда использовать для ускорения запросов, вместо того, чтобы присоединиться на пользовательской функции, как Вы мучительно делали до сих пор.
, Почему я выбирал varchar (42)? Ну, прежде всего международные телефонные номера будут иметь варьировавшиеся длины, следовательно "var". Я храню тире и "x", так, чтобы объяснил "символ", и так или иначе, Вы не будете делать целочисленной арифметики по номерам телефона (я предполагаю), таким образом, имеет мало смысла пытаться использовать числовой тип. Что касается длины 42, я использовал максимальную возможную длину всех сложенных полей, на основе ответа Adam Davis, и добавил 2 для тире и 'x".
KISS - я устаю от многих американских веб-сайтов. У них есть некоторый умно записанный код для проверки индексов и номеров телефона. Когда я ввожу свою совершенно допустимую норвежскую контактную информацию, я нахожу, что довольно часто она отклоняется.
Отпуск это строка, если у Вас нет некоторой определенной потребности в чем-то более усовершенствованном.