美文网首页
关于小波的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