在swift中那些有關於判斷版本更新的注意事項

2021-07-16 16:57:28 字數 2118 閱讀 9266

本人工作閒暇,在自己專案中發現判斷版本更新這一塊做的不夠嚴謹,就自己把他重新寫了下,期間有遇到的一些問題,所以寫下這個希望能幫到有需要的人

步入正題 : )

func checkversion(handlevc: uiviewcontroller, compeletion: ((isnewest: bool) -> void)?) 

guard let versioninfo = object["results"].arrayvalue.first else

// currentversionstring == 當前手機應用的版本號

let currentversionstring = nsbundle.mainbundle().infodictionary["cfbundleshortversionstring"] as? string

let storeversionstring = versioninfo["version"]

if currentversionstring != storeversionstring

compeletion?(isnewest: true)

}}

如果出現上述情況,就要把版本號的每一位做一下判斷,也就是說吧版本號,以 「.」 的位置分隔成陣列,逐位做對比了.

func checkversion(handlevc: uiviewcontroller, compeletion: ((isnewest: bool) -> void)?) 

guard let versioninfo = object["results"].arrayvalue.first else

let currentversionstring = nsbundle.mainbundle().infodictionary["cfbundleshortversionstring"] as? string

let currentversionstrings = currentversionstring.componentsseparatedbystring(".")

let storeversionstrings = versioninfo["version"].stringvalue.componentsseparatedbystring(".")

guard storeversionstrings.count == currentversionstrings.count else

}compeletion?(isnewest: true)

}}}

func checkversion(handlevc: uiviewcontroller, compeletion: ((isnewest: bool) -> void)?) 

guard let versioninfo = object["results"].arrayvalue.first else

// currentversionstring == 當前手機應用的版本號

let currentversionstring = nsbundle.mainbundle().infodictionary["cfbundleshortversionstring"] as? string

let currentversionstrings = currentversionstring.componentsseparatedbystring(".")

let storeversionstrings = versioninfo["version"].stringvalue.componentsseparatedbystring(".")

guard storeversionstrings.count == currentversionstrings.count else else

if storeversionstrings[index].tofloat() > currentversionstrings[index].tofloat()

}compeletion?(isnewest: true)

}}}

這樣就可以避免剛才的問題了!

個人閒暇,重做了這一塊,就敘述下寫著塊前後遇到的問題.

以上是最終**,上述中有用到 swiftjson 框架中的解析,如果有優化求指點~!

關於在swift中怎麼使用MJExtension

1.對於模型中還有其他模型類屬性的情況 只要在屬性的冒號之後把對應的模型類寫上即可 2.對於屬性中有id為名的屬性,在該模型的類實現以下 override static func mj replacedkeyfrompropertyname anyhashable any 3.對於模型中含有 陣列 ...

shell筆記 與判斷有關的那些引數

表示判斷檔案是否存在 比如 f tmp flags echo 1 tmp flags表示 當 tmp flags檔案不存在時,建立該檔案並寫如內容為文字1 n 表示 判斷字串非空,z 則相反,比如 if z then version 1.0.0 fi表示當version這個變數不存在或者值為空時,將...

Swift 五 Swift中的那些預設值

在swift語言中,有很多預設值,這裡將常用的總結,歡迎補充。在函式 方法 中,形參預設是常量,不可以在函式 方法 內部進行修改,這主要是為了防止誤操作,防止在呼叫函式 方法 時改變了實參的值,所以使用常量,如果想在函式內部對實參進行修改,可以使用 var關鍵字進行標識,但是這並沒有結束,在函式 方...