swift开发笔记16
2017-12-07 18:05 dengchaojie_learner 阅读(159) 评论(0) 编辑 收藏 举报
、、监听系统通知(APP进入后台)
NSNotification.Name.UIApplicationDidEnterBackground
、、deinit == de + init,相当于oc中的delloc
deinit {
NotificationCenter.default.removeObserver(self)
}
、、model的encode和decode。坑:没有写继承, NSCoding。例如:class Album: NSObject, NSCoding {}
required init(coder decoder: NSCoder) {
super.init()
self.title = decoder.decodeObject(forKey: "title") as! String
self.artist = decoder.decodeObject(forKey: "artist") as! String
self.genre = decoder.decodeObject(forKey: "genre") as! String
self.coverUrl = decoder.decodeObject(forKey: "cover_url") as! String
self.year = decoder.decodeObject(forKey: "year") as! String
}
// will be called when Album to be achived
func encode(with aCoder: NSCoder) {
aCoder.encode(title, forKey: "title")
aCoder.encode(artist, forKey: "artist")
aCoder.encode(genre, forKey: "genre")
aCoder.encode(coverUrl, forKey: "cover_url")
aCoder.encode(year, forKey: "year")
}
、、重写description
override var description: String {
return "title: \(title)" +
"artist: \(artist)" +
"genre: \(genre)" +
"coverUrl: \(coverUrl)" +
"year: \(year)"
}
、、区别是什么
// MARK: - Lifecycle
override init(frame: CGRect) {
super.init(frame: frame)
initializeScrollView()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
initializeScrollView()
}
// call reload when added to another view
override func didMoveToSuperview() {
reload()
}