発生している問題
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})
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。