質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

351閲覧

Core Dataで日本語を保存したい

hodoru3sei

総合スコア284

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/01/16 11:19

発生している問題

Core Dataを今まで使ったことがなかったので使ってみたのですが、日本語を保存しようとすると取り出す際に日本語ではない文字列になってしまいます。

アルファベットで保存をしてみたところそのままの状態で取り出すことができました。日本語を保存する方法はないのでしょうか?

コード

Swift

1override func viewDidLoad() { 2 super.viewDidLoad() 3 4 setData() 5 getNamesData() 6 7 } 8 9 10 func setData(){ 11 guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 12 return 13 } 14 let context = appDelegate.persistentContainer.viewContext 15 16 let entity = NSEntityDescription.entity(forEntityName: "Entity", in: context) 17 let person = NSManagedObject(entity: entity!, insertInto: context) 18 person.setValue("てすと", forKey: "name") 19 person.setValue(20, forKey: "age") 20 21 do { 22 try context.save() 23 } catch { 24 print("error") 25 } 26 27 } 28 29 func getNamesData() { 30 guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 31 return 32 } 33 let context = appDelegate.persistentContainer.viewContext 34 35 let request = NSFetchRequest<NSManagedObject>(entityName: "Entity") 36 var nameArr: [NSManagedObject] 37 do { 38 nameArr = try context.fetch(request) 39 for name in nameArr { 40 print(name) 41 } 42 } catch { 43 44 } 45 }

コンソールログ

コンソールにはこのように表示されました。
ageは問題なく設定できているのですが、nameがてすとと表示できていません。
日本語を保存する方法をご存知の方いましたら教えてくださいお願いしします。

console

1<Entity: 0x6000024ea3f0> (entity: Entity; id: 0xb95de90b81eb647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p1> ; data: <fault>) 2<Entity: 0x6000024ea350> (entity: Entity; id: 0xb95de90b81e7647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p2> ; data: <fault>) 3<Entity: 0x6000024ea210> (entity: Entity; id: 0xb95de90b81e3647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p3> ; data: <fault>) 4<Entity: 0x6000024ea490> (entity: Entity; id: 0xb95de90b81ff647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p4> ; data: <fault>) 5<Entity: 0x6000024ea4e0> (entity: Entity; id: 0xb95de90b81fb647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p5> ; data: <fault>) 6<Entity: 0x6000024ea530> (entity: Entity; id: 0xb95de90b81f7647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p6> ; data: <fault>) 7<Entity: 0x6000024ea580> (entity: Entity; id: 0xb95de90b81f3647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p7> ; data: <fault>) 8<Entity: 0x6000024ea5d0> (entity: Entity; id: 0xb95de90b81cf647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p8> ; data: <fault>) 9<Entity: 0x6000024e94f0> (entity: Entity; id: 0xb95de90b81cb647b <x-coredata://3EC1CC70-1E05-4DAD-B0BB-CDA402184208/Entity/p9> ; data: { 10 age = 20; 11 name = "\U3066\U3059\U3068"; 12})

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コンソールに日本語が表示されないのはCoreDataの問題ではなくコンソールの問題です。
Appleはこれを修正するつもりがないようなので、面倒ですがラベルやテーブルなどに表示して確かめてください。

投稿2019/01/16 23:44

MasakiHori

総合スコア3384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問