美文网首页
关于小波的swift,photomania程序 (iOS 8 改

关于小波的swift,photomania程序 (iOS 8 改

作者: seven_words | 来源:发表于2015-12-01 20:12 被阅读0次

    1.先用cocoa pods安装Alamofire

    2.使用workspace

    3.改代码

    (1)原来版

    func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {​

    UINavigationBar.appearance().barStyle = .BlackTranslucent

    UINavigationBar.appearance().tintColor = UIColor.whiteColor()

    UIToolbar.appearance().barStyle = .BlackTranslucent

    UITabBar.appearance().barStyle = .Black

    UITabBar.appearance().translucent = true

    UITabBar.appearance().tintColor = UIColor.whiteColor()

    UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()

    UIButton.appearance().tintColor = UIColor.whiteColor()

    return true

    }

    现在版

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {

    UINavigationBar.appearance().barStyle = .BlackTranslucent

    UINavigationBar.appearance().tintColor = UIColor.whiteColor()

    UIToolbar.appearance().barStyle = .BlackTranslucent

    UITabBar.appearance().barStyle = .Black

    UITabBar.appearance().translucent = true

    UITabBar.appearance().tintColor = UIColor.whiteColor()

    UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()

    UIButton.appearance().tintColor = UIColor.whiteColor()

    returntrue

    }

    个人分析,这就是单纯的swift语法改革而已,当时我调试的时候,直接输入application啥的,代码自动补全就是下面那个版本了。木有技术含量

    (2)原来版

    Alamofire.request(.GET, "https://api.500px.com/v1/photos").responseJSON{

    [weak self] request,respinse,data in

    self?.handleResponse(request,response:response,data:data,callback: callback)

    }

    现在版

    Alamofire.request(.GET, "https://api.500px.com/v1/photos", parameters: ["foo": "bar"])

    .responseJSON { response in

    print(response.request)  // original URL request

    print(response.response) // URL response

    print(response.data)    // server data

    print(response.result)  // result of response serialization

    if let JSON = response.result.value {

    print("JSON: \(JSON)")

    }

    }

    这个则是单纯的我去找Alamofire​的用法,然后找到了类似的语法,照着扒下来就可以。

    (3)将json结果化

    现在版本

    Alamofire.request(.GET, "https://api.500px.com/v1/photos", parameters: ["consumer_key":"PChTHOq7W8dGZvXVpn5pKIP3Mo4tAUsBnH8OvR3H"])

    .responseJSON { response in

    print(response.request)  // original URL request

    //                        print(response.response) // URL response

    //                        print(response.data)    // server data

    //                        print(response.result)  // result of response serialization

    if let JSON = response.result.value{

    var safePhotos = JSON.valueForKey("photos") as! [NSDictionary]

    safePhotos = safePhotos.filter {

    $0["nsfw"] as! Bool == false

    }

    let newPhotos = safePhotos.map {

    PhotoInfo(id: $0["id"] as! Int, url: $0["image_url"] as! String)

    }

    self.photos.addObjectsFromArray(newPhotos)

    }

    这个是我非常非常得意的,我自己照着可能性猜测的。

    (4)

    现在版

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(PhotoBrowserCellIdentifier, forIndexPath: indexPath) as! PhotoBrowserCollectionViewCell

    let photo = self.photos.objectAtIndex(indexPath.row) as! PhotoInfo

    let imgurl = photo.url

    Alamofire.request(.GET, imgurl).responseJSON { response in

    cell.imageView.image = UIImage(data: response.data!)

    }

    return cell

    }

    也是我非常得意的自己照着写然后改成的

    最后总结:我估摸着,应该是alamofire自己将原来闭包自己写得属性改成了类里封装,直接就可以用了,比如说,那个response.data​,response.result.value,我觉得是比以前用起来方便,并且比以前安全了。

    然后,我非常崇拜念茜大神,也想成为她那样子的人。嗯哈​

    ​我的新浪博客里的。但是新浪好烦。。

    相关文章

      网友评论

          本文标题:关于小波的swift,photomania程序 (iOS 8 改

          本文链接:https://www.haomeiwen.com/subject/hqwjhttx.html