hI:我一直在使用EVReflection使我们的网络层完全恢复,我必须说:真棒工作!感谢此库的@evermeer。你可以在这里:现在https://github.com/evermeer/EVReflectionEV反射与NSManagedObject崩溃/不工作
,到发布:
下一步是让这些对象直入核心数据。这是有问题的类别之一
//这里是对象和EVReflectable扩展的文件声明:
import Foundation
import CoreData
import EVReflection
public class NGTripSummary: NSManagedObject { }
extension NGTripSummary: EVReflectable { }
//这里有对象属性:
// NGTripSummary + CoreDataProperties.swift
import Foundation
import CoreData
extension NGTripSummary {
@nonobjc public class func fetchRequest() -> NSFetchRequest<NGTripSummary> {
return NSFetchRequest<NGTripSummary>(entityName: "NGTripSummary")
}
@NSManaged public var carId: Int64
@NSManaged public var citiesVisited: NSObject?
@NSManaged public var cost: Double
@NSManaged public var distance: Double
@NSManaged public var globalStartDate: NSDate?
@NSManaged public var globalEndDate: NSDate?
@NSManaged public var kpl: Double
@NSManaged public var litres: Double
@NSManaged public var routeLocations: NSObject?
@NSManaged public var sessionId: Int64
@NSManaged public var localStartDate: NSDate?
@NSManaged public var localEndDate: NSDate?
@NSManaged public var duration: Int64
@NSManaged public var speed: Double
@NSManaged public var _id: Int64
@NSManaged public var sessionUuid: String?
@NSManaged public var tripUuid: String?
}
//。这里是JSON字符串,它表示一个演示对象:
let tripData = "{\"id\":26105240,\"userId\":25796277,\"carId\":25817551,\"vehicleId\":57812351,\"sessionUuid\":\"53324259-aa69-41c8-8f9e-c62bdb70f165\",\"tripUuid\":\"afdd8f55-6d14-4cf9-bd9f-5b6da47aaf93\",\"localStartDate\":1487170622490,\"localEndDate\":1487178323654,\"globalStartDate\":1487163422490,\"globalEndDate\":1487171123654,\"routeLocations\":null,\"litres\":24.7699,\"kpl\":0.0772,\"cost\":153.3258,\"distance\":1.9132,\"duration\":491.958,\"speed\":14.0}"
//这里就是我想用它来创建这个Mock对象的方法:
func makeMockData() {
let singleTrip = NGTripSummary(json: tripData)
print("Single Trip: \(singleTrip)")
}
//现在:创建时对象,碰撞发生在这里@类EVReflection:
// Call your own object validators that comply to the format: validate<Key>:Error:
do {
var setValue: AnyObject? = value as AnyObject?
/* LINE 923: CRASH HAPPENS HERE -> */ try anyObject.validateValue(&setValue, forKey: key)
anyObject.setValue(setValue, forKey: key)
} catch _ {
(anyObject as? EVReflectable)?.addStatusMessage(.InvalidValue, message: "Not a valid value for object `\(NSStringFromClass(type(of: (anyObject as AnyObject))))`, type `\(type)`, key `\(key)`, value `\(value)`")
print("INFO: Not a valid value for object `\(NSStringFromClass(type(of: (anyObject as AnyObject))))`, type `\(type)`, key `\(key)`, value `\(value)`")
}
//////////////////原因进行崩溃/////////// /////////
[错误]错误:CoreData:错误:无法请NSManagedObject类 'NGTripSummary' CoreData指定初始化:错误:CoreData:错误:无法请NSManagedObject类指定初始化 'NGTripSummary'
//// //////////////////////////////////////////////
- >任何人,请帮助:-0
嗨@汤姆哈灵顿,请你提供指定初始化的典范./感谢 –
@HernanArber每个类都有?一个指定的初始化程序,对于'NSManagedObject',这是我在我的答案中提到的那个。如果您不确定指定的初始化程序是什么,请查看Apple的[有关Swift中的类初始化的文档](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization。 HTML#// apple_ref/DOC/UID/TP40014097-CH18-ID203)。 –