123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import Foundation
- import QuartzCore
- import ObjectMapper
- extension GithubUserObjectMapper {
- static func benchmark() {
- let path = NSBundle.mainBundle().pathForResource("user", ofType:"json")
- let data = NSData(contentsOfFile: path!)
- let json: NSDictionary?
- do {
- json = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as? NSDictionary
- } catch let error {
- print(error)
- json = nil
- }
-
- print("ObjectMapper from json to json archive")
- let start = CACurrentMediaTime()
- for _ in 1...10000 {
- _ = Mapper<GithubUserObjectMapper>().map(json)
- }
- let end = CACurrentMediaTime()
- let time = (end - start) * 1000.0
- print("\(time) ms") // too slow...
- }
- }
- class GithubUserObjectMapper : Mappable {
- var login: String?
- var userID: UInt64?
- var avatarURL: String?
- var gravatarID: String?
- var url: String?
- var htmlURL: String?
- var followersURL: String?
- var followingURL: String?
- var gistsURL: String?
- var starredURL: String?
- var subscriptionsURL: String?
- var organizationsURL: String?
- var reposURL: String?
- var eventsURL: String?
- var receivedEventsURL: String?
- var type: String?
- var siteAdmin : Bool?
- var name: String?
- var company: String?
- var blog: String?
- var location: String?
- var email: String?
- var hireable: String?
- var bio: String?
- var publicRepos: Int?
- var publicGists: Int?
- var followers: Int?
- var following: Int?
- var createdAt: NSDate?
- var updatedAt: NSDate?
- var test: NSValue?
-
- required init?(_ map: Map){
-
- }
-
- func mapping(map: Map) {
- login <- map["login"]
- userID <- map["id"]
- avatarURL <- map["avatar_url"]
- gravatarID <- map["gravatar_id"]
- url <- map["url"]
- htmlURL <- map["html_url"]
- followersURL <- map["followers_url"]
- followingURL <- map["following_url"]
- gistsURL <- map["gists_url"]
- starredURL <- map["starred_url"]
- subscriptionsURL <- map["subscriptions_url"]
- organizationsURL <- map["organizations_url"]
- reposURL <- map["repos_url"]
- eventsURL <- map["events_url"]
- receivedEventsURL <- map["received_events_url"]
- type <- map["type"]
- siteAdmin <- map["site_admin"]
- name <- map["name"]
- company <- map["company"]
- blog <- map["blog"]
- location <- map["location"]
- email <- map["email"]
- hireable <- map["hireable"]
- bio <- map["bio"]
- publicRepos <- map["public_repos"]
- publicGists <- map["public_gists"]
- followers <- map["followers"]
- following <- map["following"]
- createdAt <- (map["created_at"], DateTransform())
- updatedAt <- map["updated_at"]
- test <- map["test"]
- }
-
- }
|