如何看待 Swift Server APIs 计划

高分请分析下,如何看待 Swift Server APIs 计划
最新回答
近水楼台

2024-11-30 07:11:20

好了,可以在swift文件使用AFNetworking
platform :ios, '7.0'
pod 'SDWebImage', '~> 3.7.1'
pod 'CocoaHTTPServer', '~> 2.3'
pod 'RoutingHTTPServer', '~> 1.0.0'
pod 'Masonry', '~> 0.6.1'
pod 'ASIHTTPRequest', '~> 1.8.2'
pod 'MBProgressHUD', '~> 0.9.1'
pod 'AFNetworking', '~> 2.5.4'

在使用OC进行项目开发时,对AFNetworking做了一层简单的外部封装,今天我们就把它用Swift实现。
使用过新版AFNetworking的都知道它有一个AFHTTPSessionManager,在这里我们继承AFHTTPSessionManager使用单例模式返回一个该类的实例,
来进行网络操作在swift中单例的写法跟OC语法差别很大,Swift语法在这里不多讲解,请参考《The Swift Programming Language》,我们来看下代码
//
// RequestClient.swift
// SwiftStudy
//
// Created by 杨雯德 on 15/8/19.
// Copyright (c) 2015年 杨雯德. All rights reserved.
//
import UIKit
class RequestClient: AFHTTPSessionManager {

class var sharedInstance :RequestClient {
struct Static {
static var onceToken:dispatch_once_t = 0
static var instance:RequestClient? = nil
}

dispatch_once(&Static.onceToken, { () -> Void in
//string填写相应的baseUrl即可
var url:NSURL = NSURL(string: "")!
Static.instance = RequestClient(baseURL: url)
})
//返回本类的一个实例
return Static.instance!

}
}

拿到RequestClient的实例我们就可以进行post、get以及上传图片文件的封装了
在OC中使用AFNetworking习惯使用block来进行数据的传递等,在Swift我们使用闭包来进行数据的传输
这是我的文件目录
SwiftStudy ------------工程目录
AppDelegate.swift
myViewController.swift
ViewController.swift
NetWork ------------网络相关
RequestClient.swift
RequestAPI.swift
CustomVC ------------VC的封装,