Swift小技巧 二

2022-08-05 18:12:14 字數 2807 閱讀 7735

.如何解決閉包內部的迴圈引用問題

//通過定義捕獲列表解決

lazy var someclosure: void -> string =

.如何獲得某個變數的型別字串
let string = "hello"

let stringarray = ["one", "two"]

let dictionary = ["key": 2]

//列印具體內容

print(string)//hello

print(stringarray)//["one", "two"]

print(dictionary)//["key": 2]

//列印型別

print(type(of: string))//"string"

print(type(of: stringarray))//arrayprint(type(of: dictionary))//dictionary//獲得型別字串

string(describing: type(of: string)) // "string"

string(describing: type(of: stringarray)) // "array"

string(describing: type(of: dictionary)) // "dictionary"

//獲得完整的型別字串

string(reflecting: type(of: string)) // "swift.string"

string(reflecting: type(of: stringarray)) // "swift.array"

string(reflecting: type(of: dictionary)) // "swift.dictionary"

.如何查詢陣列內部某個元素或者某些元素
class person 

}let p1 = person(name: "a", age: 1)

let p2 = person(name: "b", age: 2)

let p3 = person(name: "c", age: 3)

let p4 = person(name: "c", age: 31)

let array = [p1,p2,p3,p4]

//可以獲得p1的下標為0

var result = array.firstindex

print(result!)

//通過元素內部的某個屬性來查詢index

result = array.firstindex

print(result!)

//index只會返回第一個查詢到的,查詢多個,需要使用filter

let contents = array.filter

contents.count//contents會包含所有name=c的值

生成指定位數的整數或者小數,不足位數以0補充
//指定位數字,不足的位數以0補充

extension int

}//保留指定位小數,不足位數以0補充

extension double

}//使用

print(8.format(f: "06"))//000008

print(8.format(f: "02"))//08

print(9999.format(f: "02"))//9999

print(0.12345.format(f: ".2"))

print(0.1.format(f: ".4"))

對陣列內元素,按照指定屬性指定規則進行排序
struct imagefile 

let image1 = imagefile(name: "a.jpg", id: 3)

let image2 = imagefile(name: "c.jpg", id: 2)

let image3 = imagefile(name: "b.jpg", id: 1)

var images = [image1, image2, image3]

images.sort //從大到小排序

images.sort //從小到大排序

如何替換字串中某個特定字元
let string = "this is my string"

//替換" "成"-",最終結果為:"this-is-my-string"

//方法一

let newstring1 = string.replacingoccurrences(of: " ", with: "-")

//方法二

let toarray = string.components(separatedby: " ")

let newstring2 = toarray.joined(separator: "+")

//方法三

let newstring3 = string(string.characters.map )

如何發出http請求

ss1

let url = url(string: "")

let task = urlsession.shared.datatask(with: url!)

task.resume()

如何修改imageview中image的顏色

ss1

override func viewdidload() 

func changetintcolor(imageview: uiimageview, color: uicolor)

Swift小技巧 三

實現tableview滾動到底部的功能 獲得底部的位置 let bottomoffset cgpoint x 0 y scrollview contentsize height scrollview bounds height 設定scrollview顯示的位置 scrollview setcont...

二分小技巧

有一些題目,常常會用到二分,但無良的出題人總是會卡人們的二分。。。比方說你每次二分總要分滿log次,而且還總要分n次,這樣效率就變成了n log n ,很是gg。但是思考發現我們的二分存在一個小問題,就是說右端點總是被卡死的,如果解決這個瓶頸,便能實現不被卡。 而能二分說明它一定有二分性質,也就是說...

Swift實戰技巧

swift實戰技巧 給oc呼叫的方法需要新增 objc標記,一般的action target的處理方法,通知的處理方法等需要新增 objc標...