原创 Swift - 雙問號操作符(??)的介紹

Swift 提供了雙問號操作符( ??),英文叫   Double Question Mark。可以用來快速對   nil 進行條件判斷。當我們獲取一個可選值( optional value)時,如果希望其爲   ni

原创 Category爲什麼會覆蓋原來類中的方法?

常見面試題:介紹一下分類,能用分類做什麼?內部是如何實現的?它爲什麼會覆蓋掉原來的方法? 深入瞭解Category 我們都知道OC代碼執行時會先轉成C\C++代碼,OC對象轉成對應的結構體; Category對應的結構體我們可以通過將

原创 copy修飾NSArray strong修飾NSMutableArray

strong與copy修飾符 strong修飾的屬性,對該屬性賦值時發生指針拷貝,即淺拷貝; copy修飾的屬性,對該屬性賦值時發生內容拷貝,即深拷貝。(存在特殊Case) 通過重寫對象的setter方法實現。 當將不可變對象賦

原创 iOS 使用WKWebView與js交互傳值及代理方法

我們做項目的時候會避免不了使用WebView之類的滾動視圖,之前一直在使用UIWebView。但UIWebView存在加載速度慢、佔用內存大等問題,後來蘋果在iOS8.0之後推出了WKWebView,增加了更多強大的功能,提供了豐富的接

原创 iOS:iPhone XR、iPhoneXS、iPhone XS Max屏幕適配

2018年9月蘋果發佈了最新款iPhone,分別爲iPhone XR、iPhone XS和iPhone XS Max。 各大網站的測評和詳細參數都已有很多了,所以本文不在列舉這些。 在屏幕適配方面與iPhone X的適配完全一致,大家想

原创 iOS 基於AVPlayer的簡易播放器

簡單介紹一下,AVPlayer是基於AVFoundation框架的一個類,很接近底層,靈活性強,方便自定義各種需求,使用之前需要先導入#import <AVKit/AVKit.h> 這個簡易播放器非常簡單,是我拿了練手玩的,功能只

原创 iOS關於蘋果開發者賬號及證書的一些說明

在iOS開發過程中,無論是安裝到真機測試,還是上線到App Store,你總是要接觸到證書的。 相信大家對蘋果證書的創建都有一定的瞭解,網上也有很多教程,可是你還是會在開發過程中遇到各種證書不能用的情況。 下面先來介紹幾個概念。 1、A

原创 iOS AFNetworking 的異常處理

使用AFN框架訪問網路使開發便捷了許多。但是使用的時候仍然會出現一些意想不到的錯誤。本文詳細說明錯誤的原因,讓你知其然知其所以然。 錯誤1. Code=-1006、unacceptable text/html 訪問網絡直接進入fai

原创 iOS開發技巧: 將異步方法封裝成同步方法

在開發中我們經常會遇到異步方法,在設計程序邏輯的時候有些操作依賴於異步的回調結果,有時候我們不得不把一個原本內聚的邏輯通過代理或者回調的方式打散開來,這樣作它打亂了我們代碼順序執行的流程。如果這個方法是同步的就好了 本篇文章會介紹針