Preciso salvar meu array em Core Data.
let array = [8, 17.7, 18, 21, 0, 0, 34]
Os valores dentro dessa matriz e o número de valores são variáveis.
1. O que declaro dentro da minha classe NSManagedObject?
class PBOStatistics: NSManagedObject, Equatable {
@NSManaged var date: NSDate
@NSManaged var average: NSNumber
@NSManaged var historicAverage: NSNumber
@NSManaged var total: NSNumber
@NSManaged var historicTotal: NSNumber
@NSManaged var ordersCount: NSNumber
@NSManaged var historicOrdersCount: NSNumber
@NSManaged var values: [Double] //is it ok?
@NSManaged var location: PBOLocation
}
2. O que declaro dentro do meu .xcdatamodel?
3. Como faço para salvar isso na minha entidade? (Eu uso MagicalRecord)
let statistics = (PBOStatistics.MR_createInContext(context) as! PBOStatistics)
statistics.values = [8, 17.7, 18, 21, 0, 0, 34] //is it enough?
NSManagedObject
:@NSManaged var values: [Double]
isso é bom? Você pode me dizer que tipo devo usar.xcdatamodel
para salvar isso?Respostas:
Ok, fiz algumas pesquisas e testes. Usando o tipo Transformable , a solução é simples:
1. O que declaro dentro da minha classe NSManagedObject?
2. O que declaro dentro do meu .xcdatamodel?
Transformable
tipo de dados.3. Como faço para salvar isso na minha entidade?
Ou se você deseja declará-lo como dados binários , leia este artigo simples :
fonte
[NSString]
uma série de stringsSwift 3 Como não temos mais os arquivos de implementação a partir do Swift 3, o que temos que fazer é ir até o arquivo xcdatamodeld, selecionar a entidade e o atributo desejado (neste exemplo é chamado de valores). Defina-o como transformável e sua classe personalizada como
[Double]
. Agora use-o como um array normal.fonte
Converter Array em NSData
Converter NSData em Array
Por exemplo: https://github.com/kkvinokk/Event-Tracker
fonte
Se for simples e armazenar um array como uma string
Experimente isto:
Para outros tipos de dados, respectivamente:
fonte
Faça o tipo de atributo de entidade como "Dados binários"
Recupere a matriz original como:
Isso é tudo.
fonte
O seguinte código funciona para mim para armazenar array de JSON em CoreData
fonte