序列化CLCircularRegion的自定义子类,并在类中添加一个属性

时间:2018-02-24 15:49:44

标签: swift nscoding

我正在使用这个类来创建一个对象但是当我从UserDefaults归档和取消归档时,它只给了我trialUrl的值但不是它的超类属性。因为我不知道CLCircularRegion支持Codable协议我坚持这种方法。

class TrialRegion: CLCircularRegion{
        var trailUrl:URL?

         init(center: CLLocationCoordinate2D, radius: CLLocationDistance, identifier: String,trailUrl:URL) {
            super.init(center: center, radius: radius, identifier: identifier)
            self.trailUrl = trailUrl
        }
        override func encode(with aCoder: NSCoder) {
            super.encode(with: aCoder)
            aCoder.encode(URL.self, forKey: "trialUrl")
        }

        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
            guard let url = aDecoder.decodeObject(of: NSURL.self, forKey: "trialUrl") as URL? else {return}
            self.trailUrl = url
        }
    }

0 个答案:

没有答案