swift 4.0 踩坑记录

作者: Bart_Simpson | 来源:发表于2017-10-19 17:59 被阅读189次

    安装Xcode 9.0,语法升级到swift4.0后只是根据系统提示更改了报错的语法,这个过程还好,基本上跟着提示走就可以。和原来不一样的是,不是双击报错的红色而是点Fix。但是工程基本ok后就要开始解决警告(Warning)了,然后就碰到了一些问题。

    1.substring(from:)' is deprecated: Please use String slicing subscript with a 'partial range from' operator. 警告
    解决办法

    let newStr = String(str[..<index]) // = str.substring(to: index) In Swift 3
    let newStr = String(str[index...]) // = str.substring(from: index) In Swif 3
    let newStr = String(str[range]) // = str.substring(with: range) In Swift 3
    

    2.第三方库升级
    只是列举我用到的

    pod 'Alamofire','~> 4.5'
    pod 'Moya', '>= 9.0'
    pod 'SwiftyJSON'
    pod 'FMDB'
    pod 'MBProgressHUD'
    pod 'MJRefresh'
    pod 'IQKeyboardManagerSwift','>= 5.0.0'
    pod 'SDWebImage'
    pod 'SnapKit'
    pod 'Charts'
    

    附上终端截图


    终端截图

    其中的Charts我直接更新到最新了

    Moya从8.X升级到9.X有改动,要细看,不然真的蒙蔽(差点以为要大改)。
    从8.x升级到9.x的Github文档

    public protocol TargetType {
    
       /// The target's base `URL`.
       var baseURL: URL { get }
    
       /// The path to be appended to `baseURL` to form the full `URL`.
       var path: String { get }
    
       /// The HTTP method used in the request.
       var method: Moya.Method { get }
    
       /// Provides stub data for use in testing.
       var sampleData: Data { get }
    
       /// The type of HTTP task to be performed.
       var task: Task { get }
    
       /// Whether or not to perform Alamofire validation. Defaults to `false`.
       var validate: Bool { get }
    
       // The headers to be used in the request.
       var headers: [String: String]? { get }
    }
    

    这是9.x的协议,新增了一个必须属性headers,然而我并没有使用,直接设置为nil了
    var headers: [String : String]? { return nil }
    移除了之前的parameters及parameterEncoding,然后新增了Task的类型。其实就是把这两个属性写到了Task里

    var task: Task {
            return .requestParameters(parameters: self.parameters!, encoding: URLEncoding.default)
        }
    

    也就是说增加headers,删掉parameterEncoding,然后Task更换写法就OK啦。如果有不足欢迎讨论。

    转载请注明出处,谢谢。

    相关文章

      网友评论

        本文标题:swift 4.0 踩坑记录

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