這裏記錄過去一個月,我看到的值得分享的內容,包含但不限於iOS知識,每月的最後一天發佈。 歡迎推薦內容,能夠前往zhangferry/iOSMonthlyReport提交issue。java
若是要在後臺執行非UI相關的工做, 通常把這部分工做放在Global queue. Global queue是一種系統內共享的並行的隊列。申請Global queue的方法很簡單:ios
let userQueue = DispatchQueue.global(qos: .userInitiated)
複製代碼
其中後面的.userInitiated
參數表明隊列的優先級。該優先級公有6中分類,有高到低爲: userInteractive>default>unspecified>userInitiated>utility>background
經過該段代碼驗證:git
for i in 1...3 {
DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {
NSLog("DispatchQoS.QoSClass.default, %d", i)
}
DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async {
NSLog("DispatchQoS.QoSClass.background, %d", i)
}
DispatchQueue.global(qos: DispatchQoS.QoSClass.unspecified).async {
NSLog("DispatchQoS.QoSClass.unspecified, %d", i)
}
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async {
NSLog("DispatchQoS.QoSClass.userInitiated, %d", i)
}
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async {
NSLog("DispatchQoS.QoSClass.userInteractive, %d", i)
}
DispatchQueue.global(qos: DispatchQoS.QoSClass.utility).async {
NSLog("DispatchQoS.QoSClass.utility, %d", i)
}
}
複製代碼
其中userInitiated
爲LIFO(後進先出)
,即若是有新插入的userInteractive
級別的隊列任務,爲先執行新任務以後再執行以前該級別任務。其他優先級的隊列任務均是FIFO(先進先出)
。github
由於測試工程和主工程分屬不一樣Module
,因此若是咱們想在測試項目中調用主工程代碼須要導入主工程:swift
@testable import moduleName
複製代碼
這個時候若是報以上錯誤,會有如下可能: 一、targetName錯誤 這個能夠去Target->Build Setting->Product Module Name
確認。 二、主工程和測試模塊支持版本號不一致 保證Build Setting->iOS Deployment Target
中的版本號在主工程和測試工程中一致。bash
若是往AppStoreConnect傳包一直卡在這個步驟,能夠試一下這種方式:app
第一步: cd ~
async
第二步: mv .itmstransporter/ .old_itmstransporter/
工具
第三步: "/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter"
學習
等待執行完成。
如題,若是訂閱功能含freetrial,必定要在freetrial按鈕旁邊標清楚試用的截止時間。
一款可以統計開發時間的網頁端應用,支持衆多IDE。
集成到IDE以後,註冊帳號而後會獲取到一個Key,綁定該值。而後當咱們愉快的開發時,一些開發的信息就會被記錄下來。咱們能夠經過其網頁端的dashboard查看咱們開發的狀況。 由於前幾天升級XCode,須要從新裝插件,因此最近幾天的開發記錄爲空。出自QMUI團隊,多是小集的影響力已經很大了,這個軟件首發以後竟發現已經有一衆人開始關注這個東西了。可能由於UI調試這個操做是一個高頻的行爲,而Xcode目前又作的不夠好,因此你們都期待有一個高效的UI調試工具。我也是下下來試了下,結合以前對Reveal和Sherlock的使用,說下本身的體會吧,首先是優勢: 一、免費 二、支持動態修改UI元素屬性,例如位置,顏色,圓角這些 三、能夠查看CALayer的信息 由於是剛發佈沒多久,仍是有些須要改進的地方的 一、動態修改UI元素的信息,均是經過UIView,和CALayer的信息進行修改,沒法實現像UILabel改文案,更新行數等操做 二、3D的渲染有時候會有bug出現,位置不正確,另外僅支持一個左右的旋轉不支持上下 三、屏幕適配還不支持,不能修改屏幕 其實我對sherlock也都僅限於使用,中和頻率不高的使用性和高昂的費用,我選擇試用結束就放棄,雖然Lookin還存在一些不足,可是免費大於一切啊,但願能夠作的更好,爲更多開發者帶來便利。
Android開發中引用資源能夠經過R機制
,所謂R機制
就是在咱們建立一個Android項目的時候,IDE會自動幫咱們建立一個名爲R的類型,它所在的文件名稱也是叫作R.java,R類型中沒有任何方法,包含的是表明不一樣類型資源的內部靜態類,而這些內部靜態類中,也只有靜態的屬性,每一個屬性表明一個資源,故咱們要引用某個資源類型中的某個資源,可用R.資源類型.資源名來引用。下面就是代碼中的實例:
// 從圖片資源文件夾中加載名爲"image_test"的圖片以其建立位圖
Bitmap aBitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.image_test);
複製代碼
相對來講iOS中的資源引用就麻煩不少,須要經過字符串引用,沒法代碼補全,資源更換沒法自檢查。解決iOS資源引用的這些問題而借鑑Android方案的R.Swift
應運而生。 傳統的方式:
let settingsIcon = UIImage(named: "settings-icon")
let gradientBackground = UIImage(named: "gradient.jpg")
複製代碼
使用R.Swift
let settingsIcon = R.image.settingsIcon()
let gradientBackground = R.image.gradientJpg()
複製代碼
不光圖片,它還支持Fonts
,Resource files
,Colors
,Localized strings
,Storyboards
,Segues
,Nibs
,Reuseable Cells
。 我第一次見到這玩意的時候就一個感覺:wocao,🐂🍺! 更多關於R.Swift的使用規則參照官網說明。
github上的內容,能夠分爲兩類,純乾貨和乾貨的整理。這個庫屬於後者,是一個收錄Swift&Object-C相關資料的倉庫。收錄的都是比較經典的學習資料,並且很是全! 建庫已經兩年了,可是star卻很少,不知道是由於曝光度的問題,仍是由於你們對設計版權問題的內容有些警戒。但無論怎樣吧,我仍是要推一推這個庫。
開源的iOS應用列表。基本涵蓋了iOS開發涉及的全部領域,經過完整的app去學習別人的開發技巧是一個相對直觀的方式,面對這個大禮包,記得來看一看哈。
中文博客的收錄,包含科技,風投,生活,電影,設計等領域。 音頻內容最大的優點就是便捷,你能夠在走路,跑步,甚至休息的時候使用它。音頻相比視頻還有一個更大的好處是,它會給大腦預留更多的想象空間,聽音頻咱們會思考的更多一些。 去年一直在聽東吳同窗會,最近一段時間則聽ggtalk和硅谷早知道多一些。
一、
生存是一種即時策略遊戲,全部的人都是這場遊戲的玩家。財務自由了,就是遊戲贏家。
--《科技愛好者週刊:66期》
二、
我覺得別人尊重我,是由於我很優秀。慢慢的我明白了,別人尊重我,是別人很優秀;優秀的人更懂得尊重別人,對人恭敬實際上是在莊嚴你本身。
三、
所謂成熟的人,就是精神上可以自給自足的人。