用 Linux 的朋友可能會對這個命令比較熟悉,它可以在腳本里快速和批量地對文本文檔進行操作,比如改動某一行或者替換具體內容……
MACOS 自然也是有這個命令的,但有一點不太一樣,如果你執行 和 -一世 ,那麼多半你會得到一個奇怪的報錯 和: 1: “......”: 無效 command 碼 。
[……]
用 Linux 的朋友可能會對這個命令比較熟悉,它可以在腳本里快速和批量地對文本文檔進行操作,比如改動某一行或者替換具體內容……
MACOS 自然也是有這個命令的,但有一點不太一樣,如果你執行 和 -一世 ,那麼多半你會得到一個奇怪的報錯 和: 1: “......”: 無效 command 碼 。
[……]
2018年11月02日 更新,切換到 DoT 一天后,所有 stubby 內置服務器運行異常緩慢,直到日常使用都難……只好放棄。
2018年11月01日 更新,使用了 5 天 DoH 後,由於目前提供此服務的服務器只有 1.1.1.1,這個地址在我這裡被運營商屏蔽了。
1 2 3 4 5 6 |
PING 1.1.1.1 (1.1.1.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 ^C --- 1.1.1.1 ping statistics --- 3 packets transmitted, 0 packets received, 100.0% packet loss |
三年前[……]
廢話不多說,直接上代碼。
得到:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 创建一个会话,这个会话可以复用 let session = URLSession(configuration: .default) // 设置URL let url = "http://127.0.0.1/api/" var UrlRequest = URLRequest(url: URL(string: url)!) // 创建一个网络任务 let task = session.dataTask(with: UrlRequest) {(data, response, error) in do { // 返回的是一个json,将返回的json转成字典r let r = try JSONSerialization.jsonObject(with: data!, options: []) as! NSDictionary print(r) } catch { // 如果连接失败就... print("无法连接到服务器") return } } // 运行此任务 task.resume() |
POST:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 这个session可以使用刚才创建的。 let session = URLSession(configuration: .default) // 设置URL let url = "http://127.0.0.1/api/" var request = URLRequest(url: URL(string: url)!) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" // 设置要post的内容,字典格式 let postData = ["email":"user@xxx.com","password":"123456"] let postString = postData.compactMap({ (key, value) -> String in return "\(key)=\(value)" }).joined(separator: "&") request.httpBody = postString.data(using: .utf8) // 后面不解释了,和GET的注释一样 let task = session.dataTask(with: request) {(data, response, error) in do { let r = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary print(r) } catch { print("无法连接到服务器") return } } task.resume() |
[……]
今天學員群裡有人提了這麼一個問題,為什麼把特性的字典類型作為泛型類型約束的時候,就必然報錯?
1 |
inheritance from non-protocol, non-class type 'Dictionary<String, Any>' |
顯然,說的很明確了,“你不能從一個非協議、非類的類型繼承”。顯然,字典是個泛型結構體……
那麼解決思路也很明確了,創建一個類來裝飾個字典或許是個不錯的選擇但太麻煩,那麼就從協議上下手。
我們可以給字典[……]
在開發落格輸入法的過程中,我就一直被一個問題所困擾,那就是當用戶點擊在屏幕左側邊緣時, 的UIButton 的 接地 event 幾乎變成了 touchUpInside 。也就是說,這兩個同時發生,而當你僅按下的時候,[……]
在開發落格輸入法 macOS 的過程當中,我一直被一個奇怪的問題所困擾——文本模糊。
無論我怎樣調試,落格輸入法的候選文字都無法達到原生文字的那樣清晰和銳利。在請教了大神之後,得到的活久見經驗是——上游次像素渲染 錯誤。
在很多平台都有類似問題,macOS 底層渲染也有這樣的錯誤,一旦你的佈局出現了小數點或者不是整數,就會導致文本渲染模糊。
那[……]