iOS開發(fā)月報#5|201811

大事件


11月27號滓玖,蘋果AppStore下架包括拼多多嘹朗、搜狗地圖侥衬、訊飛閱讀和悅跑圈在內(nèi)的共718個App餐禁。據(jù)稱下架原因是觸發(fā)了AppStroe審核指南的2.5.2條例血久,即使用了熱更新技術(shù)。去年6月份帮非,蘋果層因熱更新下架數(shù)萬款A(yù)pp氧吐。


C6D6A56886BF8346FA56A046C2BEE023.jpg

Tips

圖片渲染開銷

我們知道讹蘑,解壓后的圖片是由無數(shù)像素數(shù)據(jù)組成。每個像素點通常包括紅筑舅、綠座慰、藍(lán)和 alpha 數(shù)據(jù),每個值都是 8 位(0–255)翠拣,因此一個像素通常會占用 4 個字節(jié)(32 bit per pixel版仔。少數(shù)專業(yè)的 app 可能會用更大的空間來表示色深,消耗的內(nèi)存會相應(yīng)線性增加)误墓。

下面我們來計算一些通常的圖片開銷:

普通圖片大小蛮粮,如 500 * 600 * 32bpp = 1MB
跟 iPhone X 屏幕一樣大的:1125 * 2436 * 32bpp = 10MB
即刻中允許最大的圖片,總像素不超過1500w:15000000 * 32bpp = 57MB
有了大致的概念谜慌,以后看到一張圖能簡單預(yù)估然想,大概會吃掉多少內(nèi)存。

關(guān)于iOS開發(fā)證書在鑰匙串沒有秘鑰的問題

當(dāng)前現(xiàn)象


D9E4F2DFEAAA7AB5D4CEC1A380A8221E.jpg

只需要將證書拖到登錄欣范,即可生成秘鑰


B91143F5C7B2BEA07FAF8849766D163E.jpg

APP內(nèi)切換語言

APP內(nèi)切換語言有一種比較簡單的實現(xiàn)方式变泄,實現(xiàn)步驟是:
1、存儲語言狀態(tài)
2恼琼、刷新KeyWindow.rootViewController
3妨蛹、刷新Bundle
4、切換語言對應(yīng)的更新操作
實現(xiàn)過程:

//1晴竞、切換語言滑燃,AppleLanguages對應(yīng)內(nèi)容是數(shù)組,語言符合可以通過Bundle.main.localizations查看
//切換至繁體中文颓鲜,存儲狀態(tài)
UserDefaults.standard.set(["zh-Hant"], forKey: "AppleLanguages")
//2表窘、刷新keyWindow,createRootViewController為創(chuàng)建rootViewController的方法
UIApplication.shared.keyWindow?.rootViewController = Application.shared.createRootViewController()

//3甜滨、更換bundle
//在切換語言的時候乐严,我們需要執(zhí)行一下,Bundle的exchangeBundle方法
extension Bundle {
    static func getLocalizedBundle() -> Bundle {
        if let languages = UserDefaults.standard.object(forKey: "AppleLanguages") as? [String],
                let lan = languages.first,
                let path = Bundle.main.path(forResource: lan, ofType: "lproj"),
                let bundle = Bundle.init(path: path){
                return bundle
            } else {
                return Bundle.main
            }
    }
    static func exchangeBundle(){
        //替換Bundle.main為自定義的BundleLocal
        object_setClass(Bundle.main, BundleLocal.self)
    }
}

class BundleLocal: Bundle {
    override func localizedString(forKey key: String, value: String?, table tableName: String?) -> String {
        return Bundle.getLocalizedBundle().localizedString(forKey: key, value: value, table: tableName)
    }
}


//4衣摩、其他更新操作昂验,如接口,UI界面

測試內(nèi)購時長

當(dāng)我們測試內(nèi)購時艾扮,需要考慮內(nèi)購到期的情況既琴。比如我測試購買了一個月的服務(wù),那么購買到期的情況呢泡嘴,不能傻傻地等一個月時間吧甫恩?
其實蘋果給出了不同內(nèi)購時長在Debug情況下對應(yīng)的測試時間。


04DF44800E5F07286951E4BE11342A89.jpg

AVPlayer進(jìn)入前臺自動播放

在我們不進(jìn)行任何前后臺設(shè)置的情況下酌予,AVPlayer進(jìn)入后臺磺箕,會自動暫停播放奖慌。再次回到前臺時,播放器會有一定概率自動恢復(fù)播放(多大概率未知松靡,測試得出的結(jié)論)简僧。

如果這個恢復(fù)播放不是我們需要的,或者我們需要避免這種不確定的情況發(fā)生雕欺,我們可以手動管理這個過程:

NotificationCenter.default.addObserver(forName: UIApplication.didEnterBackgroundNotification, object: self, queue: nil) { (notification) in
      self.player.pause()
}
        
NotificationCenter.default.addObserver(forName: UIApplication.didEnterBackgroundNotification, object: self, queue: nil) { (notification) in
    //根據(jù)需要是否需要恢復(fù)播放
    if shouleRecoverPlayer {
        self.player.play()
    } else {
        self.player.pause()
    }
    
}

iOS12.1關(guān)于tabbar的一個bug

觸發(fā)條件:

  • 使用 UITabBarController + UINavigationController 組合
  • UITabBar帶半透明效果岛马,isTranslucent 屬性為 true
  • UIViewControllerhidesBottomBarWhenPushed 屬性為 true
  • 通過導(dǎo)航欄返回上一頁時(導(dǎo)航欄返回按鈕 or 屏幕左側(cè)的滑動返回手勢)

問題現(xiàn)象:

20181112163203240.gif

經(jīng)確認(rèn)是iOS12.1上的一個bug。
解決方案:

//MARK: - fix ios12.1 tabbar bug
let tabbar = UITabBar.appearance()
tabbar.isTranslucent = false

詳細(xì)內(nèi)容可以參考:
修復(fù) iOS12.1 UITabBar 布局位移bug - ZHFDBK的博客 - CSDN博客
swift - UITabBar items jumping on back navigation on iOS 12.1 - Stack Overflow

推薦內(nèi)容

重構(gòu)Swift中的Identifiers

面對越來越多的identifier屠列,改如何優(yōu)雅地處理蛛枚?
文中講了一些UITableViewCellUICollectionViewCell脸哀、segues蹦浦、UIStoryboardsUIViewController中關(guān)于identifiers的重構(gòu)方法撞蜂。

The End Is Near for Mobile Apps

移動應(yīng)用的末日將要來臨盲镶?
Medium科技板塊最近比較火的一篇文章,分上下兩篇蝌诡,講述移動應(yīng)用的前景和趨勢溉贿。

Realm學(xué)院

這是Realm建立的一個用于學(xué)習(xí)編程技術(shù)的網(wǎng)站,主要方式是視頻浦旱,內(nèi)容配有字幕宇色,并且都全部整理成文章。涵蓋范圍有Realm, Android, iOS, JavaScript, Architecture等颁湖。

文章質(zhì)量非常高宣蠕!

開發(fā)利器

KTVHTTPCache

應(yīng)該是iOS端目前最好的流媒體緩存框架了。

Realm

Realm是一個開源的對象數(shù)據(jù)庫管理系統(tǒng)甥捺,最初用于移動(Android/iOS)抢蚀,也可用于XamarinReact Native等平臺,等平臺镰禾,包括桌面應(yīng)用(Windows)皿曲,并獲得Apache許可。

對比FMDB吴侦,他的使用成本屋休,維護(hù)成本都更低。

uTools

uTools是一個極簡备韧、插件化劫樟、跨平臺的現(xiàn)代化桌面軟件。通過自由選配豐富的插件,打造你得心應(yīng)手的工具集合毅哗。
通過快捷鍵(默認(rèn)alt+space)就可以快速呼出這個搜索框听怕。它相當(dāng)聰明捧挺,可以支持輸入虑绵、拖拽、自動粘貼等作為輸入源闽烙,相應(yīng)的插件也早已準(zhǔn)備就緒翅睛,統(tǒng)一的設(shè)計風(fēng)格和操作方式,助你高效的得到正確的結(jié)果黑竞。
當(dāng)你熟悉它后捕发,能夠為你節(jié)約大量時間,讓你可以更加專注的改變世界很魂。

對比Alfred扎酷,他的不同就在于免費,使用簡單遏匆,更符合國人的習(xí)慣法挨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市幅聘,隨后出現(xiàn)的幾起案子凡纳,更是在濱河造成了極大的恐慌,老刑警劉巖帝蒿,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荐糜,死亡現(xiàn)場離奇詭異,居然都是意外死亡葛超,警方通過查閱死者的電腦和手機(jī)暴氏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绣张,“玉大人偏序,你說我怎么就攤上這事∨痔妫” “怎么了研儒?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長独令。 經(jīng)常有香客問我端朵,道長,這世上最難降的妖魔是什么燃箭? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任冲呢,我火速辦了婚禮,結(jié)果婚禮上招狸,老公的妹妹穿的比我還像新娘敬拓。我一直安慰自己邻薯,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布乘凸。 她就那樣靜靜地躺著厕诡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪营勤。 梳的紋絲不亂的頭發(fā)上灵嫌,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機(jī)與錄音葛作,去河邊找鬼寿羞。 笑死,一個胖子當(dāng)著我的面吹牛赂蠢,可吹牛的內(nèi)容都是我干的绪穆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼虱岂,長吁一口氣:“原來是場噩夢啊……” “哼玖院!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起量瓜,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤司恳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绍傲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扔傅,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年烫饼,在試婚紗的時候發(fā)現(xiàn)自己被綠了猎塞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡杠纵,死狀恐怖荠耽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布秃症,位于F島的核電站,受9級特大地震影響慢叨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜务蝠,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一拍谐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦轩拨、人聲如沸践瓷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晕翠。三九已至,卻和暖如春寸宵,著一層夾襖步出監(jiān)牢的瞬間崖面,已是汗流浹背元咙。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工梯影, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庶香。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓甲棍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赶掖。 傳聞我的和親對象是個殘疾皇子感猛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360