AFNetworkingで読み込んだWeb APIデータなどを取り込む処理で、要素が配列だった場合にどうすればいいか調べました。
Core Data ModelでAttributeを設定する時に、Typeを”Transformable”に設定する。この時、Nameは空欄にする。NSArray、NSDictionary、NSString、NSDate、NSNumber、NSDataなどNSCoding Protocolを実装しているものに変換する場合はこのように空欄でOKらしい。
試しに要素をNSArrayにして読み込ませてみます。
Item *item = [Item MR_createEntity]; NSDictionary *dict = @{@"names": @[ @"aaa", @"bbb", @"ccc", ], }; [item MR_importValuesForKeysWithObject:dict]; NSLog(@"item=%@", item);
ちゃんとNSArryとして取り込まれているようです。
(lldb) po item <Item: 0x8f23d80> (entity: Item; id: 0x8f23db0 <x-coredata:///Item/tBCCB18AF-3F30-45E8-A59C-B3E77196FB9A2> ; data: { names = "(\n aaa,\n bbb,\n ccc\n)"; }) (lldb) po item.names <__NSArrayI 0x8f20a90>( aaa, bbb, ccc ) (lldb) po item.names[0] aaa (lldb) po item.names[1] bbb (lldb) po item.names[2] ccc (lldb)