71
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

iOSで識別子を作りたいとき Swift,Objective-C

知ってる人は知っている。知らない人は知らない。そういうこと、いっぱいあります。

さてiOSである程度開発になれてきてデータ管理にCoreDataなどを使おうとして、データ定義をしているとモデルを管理する識別子、IDが欲しくなってきます。というかだいたい必要なんじゃないかと思います。

データの名前で管理しようとしたり(2年前の俺)、日付を秒数まで文字列で取得してID代わりに使ってみようとしたり(1年半前の俺)と、知っておくべきことを知らないでいると「何を言っているか分からねーと思うが、、、」な実装をしてしまいます。

先人たちはUUIDという便利なものを用意してくれてCocoaにもしっかりと用意されているので、iOS、Objective-C、Swiftで識別子を作りたいときはこれを使いましょう

Objective-Cで書くと、こう。

NSString *uuid = [[NSUUID UUID] UUIDString];

Swiftで書くと、こう。

let uuid: NSString = NSUUID().UUIDString

XcodeのSnippetとかに登録しておくと便利です。

ちなみにモデルの識別子のプロパティ名をidとかObjective-Cでやるのはナンセンスなのでidentifierとかにしましょう。

ターミナルからはuuidgen

$ uuidgen

別に日付と時間からでも生成できないことはないけど、NSUUIDなら一行で済むからそんな無茶しなくていいと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
71
Help us understand the problem. What are the problem?