DNS 劫持指在劫持的網絡範圍內攔截域名解析的請求,分析請求的域名,把審查範圍之外的請求放行,不然返回假的 IP 地址或者什麼都不作使請求失去響應。
程序員
寫在前面 JavaScript 深刻系列共計 15 篇已經正式完結,這是一個旨在幫助你們,其實也是幫助本身捋順 JavaScript 底層知識的系列。重點講解了如原型、做用域、執行上下文、變量對象、this、閉包、按值傳遞、call、apply、bind、new、繼承等 JS …
面試
Resource files for atswift conference 2017, including pdf, source projects or playgrounds. 2017 中國 Swift 開發者大會源文件,包括 pdf 和源工程文件 http://atswift.io
算法
前言: 精通 TCP/IP,熟練使用 Socket 進行網路編程。 看到這句話,有沒有感到很熟悉呀?相信不少人在投遞簡歷的時候都看到過這條要求,不少人會以爲咱們在實際開發中通常用不到這些知識,因此對這些東西不屑一顧. 可是筆者認爲想要作出更好的 APP,那麼對這些基礎知識必需要…
編程
實現下載視頻數據並實時給播放器填充數據
swift
總結了Effective Objective-C以後,還想讀一本進階的iOS書,堅決果斷選中了《Objective-C 高級編程》。 這本書有三個章節,我針對每一章節進行總結並加上適當的擴展分享給你們。能夠從下面這張圖來看一下這三篇的總體結構: 《Objective-C高級編程…
設計模式
內存泄漏問題一直是項目開發中的一大問題,本文力求幫助從事過一段時間工做的 iOS 開發者快速尋找 App 中的內存泄漏問題。
緩存
KVC 簡介 咱們知道能夠經過 setter、getter 方法來設置和修改對象的屬性,也知道如何經過簡化的點語法來設置、修改對象的屬性。實際上,Objective-C 還支持一種更靈活的操做方式,這種方式容許以字符串形式間接操做對象的屬性,這種方式的全稱是 Key Value Codi…
性能優化
好久之前,手機的性能取決於處理器的處理速度。在通過很長的一段時間發展以後,單個處理器的處理效率幾乎達到了極限。這時候多核處理器就誕生了,使得手機有了同時執行多個任務的能力。在單核時代,使用多線程技術更多時候是爲了不耗時操做堵塞了主線程。而在多核時代,多線程技術才真正完成了提高執行效率的工做。
服務器
對 SDWebImage 框架源碼的研讀
網絡
Objective-C 的 hook 方案
我的對於獲取 iOS 設備信息的總結,附 Github demo
iOS 簽名機制挺複雜,各類證書,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出錯,本文嘗試從原理出發,一步步推出爲何會有這麼多概念,但願能有助於理解 iOS App 簽名的原理和流程。
ReactNative 與 iOS 的混編詳解
從事 iOS 開發幾年,愈來愈發現,對 iOS 應用開發到發佈過程當中必不可少的一環,證書籤名相關部分,卻只是只知其一;不知其二。本文從 iOS 證書體系的基本構成模塊 入手,一步步解釋各模塊的內容與注意項。
sourcetree 衝突解決
利用 runtime 進行 kvo、ui fresh、unrecognized selector 的 crash 處理
隨着手機硬件的升級,多線程技術在應用開發中的地位能夠說足以媲美 UITableView 了。然而,多線程技術在提供咱們生產力的同時,也不可避免的帶來了陷阱,正如著名計算機學者所言:能力越大,bug 越大
美團出品的 iOS 客戶端佈局
做爲程序員的咱們,天天寫各類語言的各類代碼,點一下 IDE 環境裏的 run,或者用一行命令一跑,一個程序就運行起來了。咱們寫好的那一行行代碼,其實就是最普通的文本字符串,這些個文本字符串是怎麼變成一個個漂亮的界面,一個個大數據量吞吐的服務器,一個個聰明的人工智能 AI 算法的?這裏面其實經歷了三個過程, 編譯, 連接, 裝載 (腳本語言會特殊一些,本文後面也會說起)
Runtime
在這樣一個注重用戶體驗的時代,APM 技術快速發展,國內更是百花齊放,最近對各個公司的 APM 產品有一個調研,並在此基礎上進行了本身的實踐。這裏就從 iOS 的角度出發,談談本身對移動端 APM 的技術上的理解,並提供相對應的實例。
更新記錄: 2017.4.23:新增支持數據源徹底依賴網絡請求的狀況。 2017.4.22:新增支持請求新數據後刷新表格。 2017.4.21: 新增CocoaPods支持:pod 'SJStaticTableView', '~> 1.2.0'。 寫一個小小輪子~ 寫UITab…
如何將 UIButton 的圖片和文字設置到本身想要的位置 - imageEdgeInsets 和 titleEdgeInsets 的使用
iOS開發時常常須要接觸符號表的概念,本文主要分享符號表相關知識,包括什麼是符號表,符號表的做用,符號表的產生過程,如何查找符號表文件,如何查找符號表文件的uuid。
iOS 逆向工具 Theos 的安裝和使用
簡單剖析 PINCache 總體結構
國內外的區別
科普片 一、DNS劫持的危害 不知道你們有沒有發現這樣一個現象,在打開一些網頁的時候會彈出一些與所瀏覽網頁不相關的內容好比這樣奇(se)怪(qing)的東西圖一或者這樣圖二,其實形成這樣的緣由就是DNS劫持,在咱們正常瀏覽的網頁連接裏面被惡意插入一些奇怪的東西。不止是這些,DN…
在 2017 年在線技術峯會——阿里開源項目最佳實踐上,來自天貓的戴鵬帶來了 BeeHive 關於 iOS 大型項目解耦方案的分享。他從多人開發的問題介紹了業界的三種模塊方案,將傳統 Init 與 BeeHive Module 進行了比較,對 BeeHive 的架構進行了分析,並對 Module Manager 和 Module 的實現進行了詳細介紹。
原由是在蝦神的公衆號上看到一篇文章 《Pokemon Go 鎖區破解》,正好周圍幾個小夥伴正在玩這遊戲,便仔細研究了下所謂的破解鎖區。此次鎖區實際上是 GPS 鎖區,遊戲開發商爲了縮小初始運營範圍,在中國範圍內都沒法正常遊戲,也就是服務端經過客戶端發送的定位位置數據來判斷是否讓該…
KVO 做爲 iOS 中一種強大而且有效的機制,爲 iOS 開發者們提供了不少的便利;咱們可使用 KVO 來檢測對象屬性的變化、快速作出響應,這可以爲咱們在開發強交互、響應式應用以及實現視圖和模型的雙向綁定時提供大量的幫助。 可是在大多數狀況下,除非遇到不用 KVO 沒法解決…
LLDB 全稱 [Low Level Debugger], 默認內置於 Xcode 中的動態調試工具。標準的 LLDB 提供了一組普遍的命令,旨在與熟悉的 GDB 命令兼容。 除了使用標準配置外,還能夠很容易地自定義 LLDB 以知足實際須要。
簡介 Aspects是一個面向切面編程的庫。若是想深刻了解iOS Runtime中的消息發送機制,Aspects的源碼是值得分析的。 項目主頁Aspects 總體分析 閱讀Aspects的源碼須要如下知識做爲基礎 Objective-C Runtime 理解OC的消息分發機制 …
你還記得 C 語言的指針嗎?進階的前提是堅固的基礎。
iOS 設計模式相關資料整理 隨着寫代碼時間變長,業務邏輯愈來愈複雜,項目就會變的愈來愈臃腫,業務的拓展、Bug Fix 將會愈來愈難進展。接着進行的就是重構工做,對重構而已,那設計模式、架構、當前的業務狀況、未來可能遇到的需求 將是下一步的思考。本文將從設計模式、架構、實踐三個方面梳理 iOS 架構設計。
UITableView/UICollectionView的優化一直是iOS應用性能優化重要的一塊。即便是iOS10+iPhone7這樣的最新軟硬件配置,在系統的信息app中滾動,仔細觀察的話仍然能感到必定的掉幀現象。對於UI要求苛刻的蘋果居然在如此簡單的tableView上沒法…