8
6

【Swift】人の名前を扱う

Posted at

はじめに

PersonNameComponentsというものを知りました。

DateComponentsのように人の名前を管理できるようです。
めっちゃ便利そうなので基本的な使い方を記録しておきます。

イニシャライザはこんな感じ

本記事で登場してもらうのは、「山田ルーカス太郎3世」です。
あだ名は「タロー」です。

var personNameComponents = PersonNameComponents(
    namePrefix: "Mr.", /* Mr., Mrs., Ms.など */
    givenName: "太郎", /* 名前 */
    middleName: "ルーカス", /* ミドルネーム */
    familyName: "山田", /* 苗字 */
    nameSuffix: "3世", /* Sr., Jr., I, II, IIIなど */
    nickname: "タロー", /* ニックネーム */
    phoneticRepresentation: nil /* 受信機の音声表現名コンポーネント。(公式ドキュメントを翻訳しただけ。何に使用するか不明) */
)

style

abbreviated

familyNameのみ

let formatter = PersonNameComponentsFormatter()

formatter.style = .abbreviated

print(formatter.string(from: personNameComponents)) // 山田

default

familyName + givenName

let formatter = PersonNameComponentsFormatter()

formatter.style = .default

print(formatter.string(from: personNameComponents)) // 山田太郎

long

namePrefix + familyName + givenName + middleName + nameSuffix

let formatter = PersonNameComponentsFormatter()

formatter.style = .long

print(formatter.string(from: personNameComponents)) // Mr. 山田太郎ルーカス 3世

medium

familyName + givenName

let formatter = PersonNameComponentsFormatter()

formatter.style = .medium

print(formatter.string(from: personNameComponents)) // 山田太郎

short

nicknameのみ

let formatter = PersonNameComponentsFormatter()

formatter.style = .short

print(formatter.string(from: personNameComponents)) // タロー

おわり

文字列で管理しているよりいいですね。

参考記事

公式ドキュメント

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6