240 发简信
IP属地:湖南
  • func versionCompare(v1:String,v2:String) -> Int {
    //判断合法性
    if checkSeparat(vString: v1) == "" || checkSeparat(vString: v2) == ""{
    return -1// "只支持 '.''-'/''*'_'作为分隔符"
    }
    //获得两个数组
    let v1Arr = cutUpNumber(vString: v1) as! [String]
    let v2Arr = cutUpNumber(vString: v2) as! [String]
    //比较版本号
    return compareNumber(v1Arr: v1Arr, v2Arr: v2Arr)
    }
    //提取连接符
    func checkSeparat(vString:String) -> String {
    var separated:String = ""
    if vString.contains("."){ separated = "." }
    if vString.contains("-"){ separated = "-" }
    if vString.contains("/"){ separated = "/" }
    if vString.contains("*"){ separated = "*" }
    if vString.contains("_"){ separated = "_" }

    return separated
    }
    //提取版本号
    func cutUpNumber(vString:String) -> NSArray {
    let separat = checkSeparat(vString: vString)
    let b = NSCharacterSet(charactersIn:separat) as CharacterSet
    let vStringArr = vString.components(separatedBy: b)
    return vStringArr as NSArray
    }
    //比较版本
    func compareNumber(v1Arr:[String],v2Arr:[String]) -> Int {
    dprint(v1Arr)
    dprint(v2Arr)

    for i in 0..<v1Arr.count{

    if v2Arr.count <= i{
    return -1
    }
    if Int(v1Arr[i])! != Int(v2Arr[i])! {
    if Int(v1Arr[i])! > Int(v2Arr[i])! {
    return 1// "v1 > v2"
    }else{
    return -1// "v1 < v2"
    }
    }
    }
    return 0// "v1 == v2"
    }

  • 120
    探秘Runtime - Runtime源码分析

    该文章属于刘小壮原创,转载请注明:刘小壮[https://www.jianshu.com/u/2de707c93dc4] 本文基于objc-723版本,在Apple Gith...

  • 120
    NSTimer循环引用解决方案

    文章以在TimerViewController中使用计时器为例,在VC中声明一个NSTimer属性。 创建NSTimer对象: timer作为VC的属性,被VC强引用,创建t...

  • 120
    41- WKWebView项目实践分享(六)- 项目实践:User Agent、跨域、白屏、重定向及其它

    系列文章: 《37- WKWebView项目实践分享(一)- UIWebView回顾介绍》[https://www.jianshu.com/p/7557456ffc57]《4...

  • 120
    iOS开发·runtime原理与实践: 基本知识篇(类,超类,元类,super_class,isa,对象,方法,SEL,IMP)

    摘要:这篇文章首先介绍runtime原理,包括类,超类,元类,super_class,isa,对象,方法,SEL,IMP等概念,同时分别介绍与这些概念有关的API。接着介绍方...

  • 120
    SDVideoCamera:仿抖音(视频录制、视频剪辑、视频合成)

    闲话不多讲,先上项目Github传送门。 SDVideoCamera传送门 前言 又是好久没有更新博客了,哈哈哈,由于近来从公司离职,再加上近来要结婚的缘故,所以有大量充足的...

  • 一年iOS工作经验,如何一举拿下百度、美团、快手等Offer面经(附面试题)

    先简单说说我最近的面试经历吧。面试的公司很多,大部分最后都能得到令人满意的结果,我将这些体会记录下来,面了这么多公司,如果不留下什么,那岂不是太浪费了。对于我来说,这也是一次...

  • 120
    从开发转型到讲师的机缘巧合

    喜欢就抬抬小手,关注一下CC老师! 3年前,任性的因为在北京皮肤过敏严重,裸辞了薪资待遇和发展前途不错的开发岗位。当然最重要的原因是北京的日日夜夜,我把出租房当家。但伤心...

  • 120
    flutter_boost学习2:iOS集成flutter_boost

    上一篇:flutter_boost学习1:iOS运行flutter_boost的Sample下一篇:flutter_boost学习3:iOSNative添加与flutter交...

  • 按照你的流程来,FlutterBoost接入就报错了

    Flutter 混合开发FlutterBoost iOS 接入流程

    紧接着上次的FlutterBoost Android版本接入,这次主要讲iOS相关的接入 1.创建Flutter module 这个步骤前面的Android版本一样 2.iO...