Objective-C

Swift 4.0及以上協議寫法 option 可選協議實現

由於swift中類和結構體都可以遵循協議,所以導致所有的協議必須實現 那麼怎麼實現OC中的可選協議呢?廢話不多說,上程式碼: //前面新增 objc 關鍵字 表示這個協議是oc的協議 cla

Swift3、4中的@objc、@objcMembers和dynamic

Objective-C 物件是基於執行時的,方法或屬性使用動態派發 ,在執行呼叫時再決定實際呼叫的具體實現。而 Swift 為了追求效能,如果沒有特殊需要的話,是不會在執行時再來決定這些的。也就是說,Swift

14.java 基本資料型別的包裝類

概念 java在設計之初,有一個基本原則:一切皆物件。但是基本資料型別不是物件,不具備“物件”的特性——不攜帶屬性、沒有方法可呼叫。為了解決此類問題,Java為每種基本資料型別分別設計了對應的類,稱之為包裝

Ruby Singleton Class 與 Objective-C KVO

Ruby 是解釋強型別動態語言,Objective-C 是編譯弱型別(動態 & 靜態)語言,兩者看似沒什麼關聯,但是實際上可以說是師出同門,它們很大程度上繼承了 Smalltalk 的關鍵特性,所以很多

那些著名和非著名的 iOS 面試 - 後篇

如果你依然在程式設計的世界裡迷茫,不知道自己的未來規劃,小編給大家推薦一個IOS高階交流群:458839238 裡面可以與大神一起交流並走出迷茫。小白可進群免費領取學習資料,看看前輩們是如何在程式設計

iOS objc_msgSend尾呼叫優化機制

本文基於Objective-C物件的訊息傳遞機制,詳細分析OC對 objc_msgSend 的尾呼叫優化方式。 1. 什麼是尾呼叫? 尾呼叫( TailCall):某個函式的最後一步僅僅只是呼叫了一個函

Objective-C weak 弱引用實現

在編寫程式碼時,弱引用一般以下面兩種形式出現: weak __weak 這裡我們可以統一把第一種形式看作使用__weak 關鍵字修飾成員變數。 __weak 修飾的變數有兩

iOS的效能優化

一、App啟動優化 1.App的啟動可以分為2種 冷啟動(Cold Launch):從零開始啟動APP 熱啟動(Warm Launch):APP已經在記憶體中,在後臺存活著,再次點選

從runtime原始碼解讀oc物件的引用計數原理

現在我們使用oc程式設計不用進行手動記憶體管理得益於ARC機制。ARC幫我們免去了大部分對物件的記憶體管理操作,其實ARC只是幫我們在合適的地方或者時間對物件進行 -retain 或 -release ,並不

runtime 小結

OC被稱之為動態執行時語言,最主要的原因就是因為兩個特性,一個是執行時也就是runtime,一個是多型。 runtime runtime又叫執行時,是一套底層的c語言api,其為iOS內部核心之一。OC

字串比較中NSNumericSearch選項的工作原理

原文地址:蘋果梨的部落格 相信研究過怎麼在 ObjC 中進行版本字串比對的朋友,大多都看過這一篇 StackOverflow 的問答: Compare version numbers in Obj

1715382743.1384