Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.58 KB | None | 0 0
  1. class Music: NSObject, NSCoding {
  2.     var name:String
  3.     var url:String
  4.     var genre:String
  5.     var album:String?
  6.     var author:String?
  7.    
  8.    
  9.     struct Keys {
  10.         static let nameKey: String = "name"
  11.         static let urlKey: String = "url"
  12.         static let albumKey: String = "album"
  13.         static let genreKey: String = "genre"
  14.         static let authorKey: String = "author"
  15.     }
  16.    
  17.     init(name: String, url: String, genre: String, album: String, author: String){
  18.         self.name = name
  19.         self.url = url
  20.         self.genre = genre
  21.         self.album = album
  22.         self.author = author
  23.     }
  24.    
  25.     required  convenience init?(coder aDecoder: NSCoder) {
  26.         guard let name = aDecoder.decodeObject(forKey: Keys.nameKey) as? String,
  27.         let url = aDecoder.decodeObject(forKey: Keys.urlKey) as? String,
  28.         let album = aDecoder.decodeObject(forKey: Keys.albumKey) as? String,
  29.         let genre = aDecoder.decodeObject(forKey: Keys.genreKey) as? String,
  30.         let author =  aDecoder.decodeObject(forKey: Keys.authorKey) as? String
  31.         else { return nil }
  32.         self.init(
  33.             name: name,
  34.             url: url,
  35.             genre: genre,
  36.             album: album,
  37.             author: author
  38.         )
  39.     }
  40.    
  41.     func encode(with aCoder: NSCoder) {
  42.         aCoder.encode(name, forKey: Keys.nameKey)
  43.         aCoder.encode(url, forKey: Keys.urlKey)
  44.         aCoder.encode(genre, forKey: Keys.genreKey)
  45.         aCoder.encode(album, forKey: Keys.albumKey)
  46.         aCoder.encode(author, forKey: Keys.authorKey)
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement