public struct Person {
var fid: Int
var name: String
}
public struct Contact {
var fid: Int
var name: String
}
var pks = [\Person.fid, \Person.name]
var cks = [\Contact.fid, \Contact.name]
var p = Person(fid: 10, name: "hello")
var c = Contact(fid: 11, name: "test")
c[keyPath: cks[0]] = p[keyPath: pks[0]]
Je veux copier les valeurs du contact vers la personne en utilisant swift 4 keyPath. J'obtiens une error : cannot assign to immutable expression of type 'Any' (erreur : ne peut pas assigner à une expression immuable de type 'Any')
Je ne comprends pas pourquoi ?
c[keyPath: cks[0] as! WritableKeyPath<Contact, Int>] = p[keyPath: pks[0]] as! Int
fonctionnera. bug comment puis-je faire comme ça :
pks.indices.forEach { index in
let pk = pks[index]
let ck = cks[index]
c[keyPath: ck] = p[keyPath: pk]
}