Генерация UUID на iOS из Swift

238

В моем приложении iOS Swift я хочу генерировать случайные строки UUID (GUID) для использования в качестве ключевого слова таблицы, и этот сниппент работает:

let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil))

Это безопасно?

Или может быть лучший (рекомендуемый) подход?

  • 5
    Вы также можете использовать let uuid = NSUUID.UUID (). UUIDString
  • 0
    Посмотрите на stackoverflow.com/questions/3773776/…
Показать ещё 2 комментария
Теги:
guid
cocoa-touch
core-foundation

6 ответов

568
Лучший ответ

Попробуй это:

let uuid = NSUUID().uuidString
print(uuid)

Свифт 3

let uuid = UUID().uuidString
print(uuid)
  • 6
    В XCode 6.1 я обнаружил эту ошибку: «UUID ()» недоступен: используйте конструкцию объекта «NSUUID ()». Мы должны изменить его на NSUUID (). UUIDString
  • 0
    Готово - обновленный ответ для корректного отображения NSUUID (). UUIDString
Показать ещё 7 комментариев
27

Вы также можете использовать API NSUUID:

let uuid = NSUUID()

Если вы хотите вернуть значение строки, вы можете использовать uuid.UUIDString.

Обратите внимание, что NSUUID доступен с iOS 6 и выше.

14

Для Swift 4;

let uuid = NSUUID().uuidString.lowercased()
  • 1
    Кладбище придирчиво, но я не знаю, почему строчный UUID предпочтительнее обычного UUID.
10

Для Swift 3 многие типы Foundation сбросили префикс "NS", поэтому вы получите доступ к нему UUID().uuidString.

5

Также вы can используете его lowercase ниже

let uuid = NSUUID().UUIDString.lowercaseString
print(uuid)

Выход

68b696d7-320b-4402-A412-d9cee10fc6a3

Спасибо!

  • 1
    Благодарю. теперь это NSUUID().uuidString.lowercased()
  • 3
    Какая польза от использования таких строчных букв?
Показать ещё 1 комментарий
0

Это более эффективно при выполнении поиска по запросу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню