GithubUserObjectMapper.swift.bak 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import Foundation
  2. import QuartzCore
  3. import ObjectMapper
  4. extension GithubUserObjectMapper {
  5. static func benchmark() {
  6. let path = NSBundle.mainBundle().pathForResource("user", ofType:"json")
  7. let data = NSData(contentsOfFile: path!)
  8. let json: NSDictionary?
  9. do {
  10. json = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as? NSDictionary
  11. } catch let error {
  12. print(error)
  13. json = nil
  14. }
  15. print("ObjectMapper from json to json archive")
  16. let start = CACurrentMediaTime()
  17. for _ in 1...10000 {
  18. _ = Mapper<GithubUserObjectMapper>().map(json)
  19. }
  20. let end = CACurrentMediaTime()
  21. let time = (end - start) * 1000.0
  22. print("\(time) ms") // too slow...
  23. }
  24. }
  25. class GithubUserObjectMapper : Mappable {
  26. var login: String?
  27. var userID: UInt64?
  28. var avatarURL: String?
  29. var gravatarID: String?
  30. var url: String?
  31. var htmlURL: String?
  32. var followersURL: String?
  33. var followingURL: String?
  34. var gistsURL: String?
  35. var starredURL: String?
  36. var subscriptionsURL: String?
  37. var organizationsURL: String?
  38. var reposURL: String?
  39. var eventsURL: String?
  40. var receivedEventsURL: String?
  41. var type: String?
  42. var siteAdmin : Bool?
  43. var name: String?
  44. var company: String?
  45. var blog: String?
  46. var location: String?
  47. var email: String?
  48. var hireable: String?
  49. var bio: String?
  50. var publicRepos: Int?
  51. var publicGists: Int?
  52. var followers: Int?
  53. var following: Int?
  54. var createdAt: NSDate?
  55. var updatedAt: NSDate?
  56. var test: NSValue?
  57. required init?(_ map: Map){
  58. }
  59. func mapping(map: Map) {
  60. login <- map["login"]
  61. userID <- map["id"]
  62. avatarURL <- map["avatar_url"]
  63. gravatarID <- map["gravatar_id"]
  64. url <- map["url"]
  65. htmlURL <- map["html_url"]
  66. followersURL <- map["followers_url"]
  67. followingURL <- map["following_url"]
  68. gistsURL <- map["gists_url"]
  69. starredURL <- map["starred_url"]
  70. subscriptionsURL <- map["subscriptions_url"]
  71. organizationsURL <- map["organizations_url"]
  72. reposURL <- map["repos_url"]
  73. eventsURL <- map["events_url"]
  74. receivedEventsURL <- map["received_events_url"]
  75. type <- map["type"]
  76. siteAdmin <- map["site_admin"]
  77. name <- map["name"]
  78. company <- map["company"]
  79. blog <- map["blog"]
  80. location <- map["location"]
  81. email <- map["email"]
  82. hireable <- map["hireable"]
  83. bio <- map["bio"]
  84. publicRepos <- map["public_repos"]
  85. publicGists <- map["public_gists"]
  86. followers <- map["followers"]
  87. following <- map["following"]
  88. createdAt <- (map["created_at"], DateTransform())
  89. updatedAt <- map["updated_at"]
  90. test <- map["test"]
  91. }
  92. }