İsteğe bağlı olarak bir coordinate
eklenmiş olan Activity
adlı bir hızlı modelim var. *** nedeniyle yakalanmamış istisna uygulaması sonlandırılması 'NSUnknownKeyException'RestKit RKObjectMapping Swift İsteğe Bağlı
2015-05-05 12: 14: 30,741 Numune [531558 54338]
bu ancak bana verir başvurumu çalıştırırken , sebep: '[setValue: forUndefinedKey:]: Bu sınıf, anahtar koordinatının kodlama uyumlu anahtar değeri değildir.'import MapKit class Activity: NSObject { var coordinate: CLLocationCoordinate2D? class func objectMapping() -> RKObjectMapping { let mapping = RKObjectMapping(forClass: self) let coordinateMapping = RKAttributeMapping(fromKeyPath: "coordinate", toKeyPath: "coordinate") coordinateMapping.valueTransformer = RKCLLocationCoordinate2DValueTransformer() mapping.addPropertyMapping(coordinateMapping) return mapping } }
İsteğe bağlı olmaması için coordinate
değiştirir ve varsayılan bir uygulama çalıştırırsa.
Sorunuz, Restrem'i Optionals açısından nasıl hızlı bir şekilde kullanabilirim? çünkü bu hatlar
let mapping = RKObjectMapping(forClass: self) let coordinateMapping = RKAttributeMapping(fromKeyPath: "coordinate", toKeyPath: "coordinate")
İsteğe bağlı özellik/değişken eşleştirmek istiyor ancak objectMapping()
senin nil coordinate
edilir çağrılırken o zamanlar bu olabilir sizin uygulama kilitlenmeleri Bence de
Neden bunu düz sayı olduğunda bu isteğe olmak istiyorsun senin mülkiyet yap? Muhtemelen derleyici, eğer isteğe bağlıysa, özellikler için erişim sağlayıcıları üretmez ... – Wain
Tüm aktivitelerin ekli bir enlem ve boylamı yoktur, bu yüzden isteğe bağlı olması için bunu yapacağını düşünmüştüm. Düzenli sayılar için puanınızı görüyorum ama aynı soruyu CLLocationCoordinate2D' –
gibi daha karmaşık bir şey için pozlayabiliyordum. Bu yüzden hiçbir zaman RestKit kullanmamıştım. Bu yüzden iç işleyişten emin değilim ... Bu başlatıcı için 'RKAttributeMapping' ('RKAttributeMapping (fromKeyPath:" koordinat ", toKeyPath:" koordinat ")' ın başlatılmasında bu uygulamada bulundu ... başlatıcıdaki ilk kod satırı: 'NSAssert (sourceKeyPath || destinationKeyPath , "" Hem kaynak hem de hedef anahtar yolları sıfırlanamaz "). Bana göre bu, "koordinat" ın isteğe bağlı (ve dolayısıyla "nil") ve her iki tuş yolu için kullanıldığından (ve dolayısıyla her ikisinin de "nil") koda sebep olmasından kaynaklanıyor. –