iOS開發月報#8|201902

這裏記錄過去一個月,我看到的值得分享的內容,包含但不限於iOS知識,每個月的最後一天發佈。 歡迎推薦內容,可以前往zhangferry/iOSMonthlyReport提交issue。

新聞一覽

2019年開發人員技能報告

這是HackerRank平臺通過對7萬多名開發人員做的一項調查,問題從他們認爲最有前途的技術到他們在工作中和麪試過程中想要的是什麼,甚至還有coding過程中聽什麼音樂最有幫助!一起看下吧。

Tips

presentedviewcontroller和presentingViewController

假設從A控制器通過present的方式跳轉到了B控制器,那麼 A.presentedViewController 就是B控制器; B.presentingViewController 就是A控制器。如果沒有對應關係會返回nil

獲取類名

//傳入實例對象object
let typeName = String(describing: type(of: object))
複製代碼

隱藏NavigationBar導致手勢返回失效

當我們從一個A(NavigationController)界面通過push進入B界面,如果要隱藏B的NavigationBar,那麼從B到A的返回手勢也會被屏蔽掉。 如果需要加回來我們可以這麼做:

//1.給需要添加返回手勢的ViewController增加UIGestureRecognizerDelegate

//2.由當前ViewController接管pop手勢
self.navigationController?.interactivePopGestureRecognizer?.delegate = self
複製代碼

關於 Decimal

官方對Decimal介紹就一句話

A structure representing a base-10 number.

表示以10爲基數的數的結構體,就是十進制的表示方法。 它可以通過 mantissa * 10 ^ exponent的形式表示任意數值。mantissa(尾數)是最長38位的整數,exponent(指數)是 -128到127的整數。

你也可以把Decimal理解成跟Int, Float, Double一樣的數據類型,那有了整形,浮點型數值還會出現Decimal這個類型? 可以看一個例子:

let stride: Float = 0.01
var sum: Float = 0
for _ in 1...100 {
    sum += stride
}
print(sum)//0.99999934
複製代碼

sum的值不是1,這是因爲精度的問題,那如果把Float換成Decimal就會完全等於1。

SKProductprice屬性就是Decimal類型

違反5.5條款被打回的經歷

在一次有關內購項審覈被打回的經歷中,遇到了一個新問題,錯誤描述中提示違反了條款5.5 Developer Code of Conduct。 簡單看下這一條

Please treat everyone with respect, whether in your responses to App Store reviews, customer support requests, or when communicating with Apple, including your responses in Resolution Center. Do not engage in harassment of any kind, discriminatory practices, intimidation, bullying, and don’t encourage others to engage in any of the above. Customer trust is the cornerstone of the App Store’s success. Apps should never prey on users or attempt to rip-off customers, trick them into making unwanted purchases, force them to share unnecessary data, raise prices in a tricky manner, charge for features or content that are not delivered, or engage in any other manipulative practices within or outside of the app.

總結一下就是要尊重用戶。

在聯繫過蘋果審覈客服之後,被告知是因爲在引導過程中彈了兩次訂閱彈窗(一次訂閱,一次freetrial)被拒的。但其實這個流程已經跑了大半年,一直沒問題,這次卻突然被揪出來了,有點莫名其妙。

可能審覈人員認爲,這種行爲有誘導或者強迫用戶付費的嫌疑。由此也可以看出審覈人員對項目流程的管理越來越嚴格了。去掉一個步驟之後再次提交就過審了。

推薦閱讀

Swift ABI 穩定對我們到底意味着什麼

Swift 社區最近最重大的新聞應該就是 ABI 穩定了。這個話題雖然已經討論了有一陣子了,但隨着 Xcode 10.2 beta 的迭代和 Swift 5 的 release 被提上日程,最終 Swift ABI 穩定能做到什麼程度,我們開發者能做些什麼,需要做些什麼,就變成了一個重要的話題。

一起來看下使用 Swift 5 會對我們的項目有什麼影響以及怎麼處理。

Void

SwiftGG翻譯組翻譯的Mattt一篇介紹Void的文章。 Void是什麼,它和nil有什麼區別,這個我們經常用但不一定真的理解的東西,一起通過這篇文章看下吧。

love2.io

程序員的自我修養,作爲一個合格的程序員需要具備哪些知識呢?

數據結構、算法、代碼架構、項目管理工具、網絡知識等?可能還不夠,還需要懂點設計、學着當一個合格的PM、學會團隊合作、學會學習、提升效率等等;夠了嗎?你還需要了解一下創業流程、關注自己的身體健康。。。

太多了,不列舉了,因爲這裏都有。

爲什麼數字下標要從 0 開始而不是 1?

大家都知道數字下標是從0開始的,那爲什麼是0而不是1呢?說實話在看這篇文章之前我也不能很清楚的說明白,如果你也有這種疑惑就看看這個文章吧。

什麼叫有知識

選自羅胖60秒: 1、話說什麼叫做有知識?最近我看萬維鋼老師有一個有趣的定義。他說,考試得了高分,不叫有知識。茶餘飯後能高談闊論,這也不叫有知識。

你發現沒有,這些場合下,知識雖然有用,但是這些知識都不太牽扯到具體的得失,所以只是智力遊戲。

2、那什麼才叫有知識呢?萬維鋼老師說,只有當局勢不明朗,沒有人告訴你該怎麼辦,而錯誤的判斷又會導致一些不良後果,這個時候,如果你因爲有知識而敢於拿一個主意,你纔算是真有知識。

3、請注意,這不是在說,實用的知識才是知識,而是在說,只有當知識能夠幫助你做實際決策的時候,它纔是你的知識。

4、這種決策當然可大可小,大到你選擇什麼樣的職業,選擇聽醫生的哪個建議;小到幫你選擇看哪一部電影,或者是爲孩子挑選買哪一本書。這都是具體的決策。

音視頻

蘇俄科幻簡史:直指星海的冒險時代

最近在機核(gamecores)上聽到的一段講述蘇俄科幻的音頻,可以當故事聽,也可以當一段歷史去聽,非常有意思。

對於很多人而言,蘇俄的科幻文學、電影乃至遊戲都是一個比較陌生的概念。事實上從沙俄末期到蘇聯再到今天的俄羅斯,來自極北之地的斯拉夫人民也曾在科幻這個領域上走了很遠很遠,取得了驚人的成績。

Github

DoraemonKit

由滴滴團隊開源,中文名“哆啦A夢”。

DoraemonKit 是一個功能集合面板,能夠讓每一個 App 快速接入一些常用的或者你沒有實現的一些輔助開發工具、測試效率工具、視覺輔助工具,而且能夠完美在 Doraemon 面板中接入你已經實現的與業務緊密耦合的一些非通有的輔助工具,功能強大,接入方便,便於擴展。

git-history

這個項目可以讓你在瀏覽器動態地查看Github庫上代碼的變動歷史。

使用方法非常簡單: 1、在對應的文件url中把github.com替換成github.githistory.xyz 2、沒有第二步

resume.github.com

這個庫可以通過你倉庫的活躍事件來生成一份在線簡歷。使用很簡單,直接訪問以下網址:resume.github.io/?youruserna…

需要將yourusername替換成你的用戶名,別忘了那個?

iOS-Developer-Roadmap

一名iOS開發人員需要具備哪些知識呢?這個庫做了比較詳盡的總結,以技能樹的形式對iOS開發所需知識點,知識面做了整理,我們可以作爲參照,查看自己有哪些缺失。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章