原创 58同城iOS面試題

    58金融 一面 1、KVO的具體實現?比如A要知道B的屬性的變化? 2、單列怎麼釋放? 3、GCD裏面放NSTimer,可以正常定時嗎? 4、算法:無序數組找最大和最小值?最優方案 5、設計題:接口數據返回list裏面只有type

原创 iOS13適配

1、UIApplication的keyWindow被標記爲API_DEPRECATED,獲取的爲nil 修改爲[[[UIApplication sharedApplication] windows] objectAtIndex:0] 2、

原创 Mac使用Sourcetree跳過註冊

打開Sourcetree 關閉Sourcetree 命令終端輸入defaults write com.torusknot.SourceTreeNotMAS completedWelcomeWizardVersion 3 打開Sourcet

原创 線程同步鎖

1、OSSpinLock(自旋鎖) High-level lock OSSpinLock叫做”自旋鎖”,等待鎖的線程會處於忙等(busy-wait)狀態,一直佔用着CPU資源 目前已經不再安全,可能會出現優先級反轉問題 如果等待鎖的線程優

原创 響應鏈及其事件傳遞

觸摸事件處理的詳細過程: 當用戶點擊屏幕後產生一個觸摸事件,經過經過一系列的傳遞過程後,會找到最合適的視圖控件來處理這個事件,找到最合適的視圖之後,就會調用空間的touches那三個方法,這些方法的默認做法是把事件順着響應者鏈條向上傳遞,

原创 iOS的幾種定時器

在開發中我們經常用到定時器,iOS爲我們提供了多種定時器,包括NSTimer、CADisplayLink、GCD。 NSTimer iOS中最基本的定時器,其通過RunLoop來實現,一般情況下較爲準確,但當前循環耗時操作較多時,會出現延

原创 iOS啓動優化

APP的啓動可以分爲2種 冷啓動(Cold Launch):從零開始啓動APP 熱啓動(Warm Launch):APP已經在內存中,在後臺存活着,再次點擊圖標啓動APP APP啓動時間的優化,主要是針對冷啓動進行優化 通過添加環境變量可

原创 iOS性能優化-列表卡頓

會造成卡頓的原因大致有哪些? CPU和GPU 在屏幕成像的過程中,CPU和GPU起着至關重要的作用 CPU(Central Processing Unit,中央處理器) 對象的創建和銷燬、對象屬性的調整、佈局計算、文本的計算和排版、圖片的

原创 TCP和UDP的區別

TCP和UDP的思維導圖: TCP:面向連接,傳送可靠,數據量少,速度相對較慢; UDP:面向非連接,傳送不可靠,傳輸大量數據 ,速度快。 TCP的優點: 可靠,穩定 TCP的可靠體現在TCP在傳遞數據之前,會有三次握手來建立連接,而且

原创 HTTPS理論基礎

我們知道,HTTP請求都是明文傳輸的,所謂的明文指的是沒有經過加密的信息,如果HTTP請求被黑客攔截,並且裏面含有銀行卡密碼等敏感數據的話,會非常危險。爲了解決這個問題,Netscape 公司制定了HTTPS協議,HTTPS可以將數據加密

原创 說說那些年不懂的atomic和nonatomic的區別

首先,明確幾個概念,原子性是什麼?線程安全是什麼?原子性是指一個事物的操作是不可分割的,要麼都發生,要麼都不發生。線程安全是指某個函數、函數庫在多線程環境中被調用時,能夠正確地處理多個線程,使程序功能正確完成。其實意思就是多線程情況下程序

原创 property中的屬性關鍵字

ARC下,不顯式指定任何屬性關鍵字時,默認的關鍵字都有哪些? atomic、readwrite、strong(對象)、assgin(基本數據類型)。 具體比較分析: 1、atomic與nonatomic atomic:默認是有該屬性的,這

原创 常見排序和二分查找(OC版本)

//選擇排序 - (void)selectSort{ NSMutableArray *arr =[ [NSMutableArray alloc] initWithObjects:@"2",@"9",@"19",@"1",@"80",

原创 AutoreleasePool底層實現原理

AutoreleasePool(自動釋放池)是OC中的一種內存自動回收機制,它可以延遲加入AutoreleasePool中的變量release的時機。在正常情況下,創建的變量會在超出其作用域的時候release,但是如果將變量加入Auto

原创 iOS中內存管理方案

系統提供的有不同的內存管理方案,大致有如下三種: TaggedPointer (對於一些小對象,比如說NSNumber等採用此種方案) NONPOINTER_ISA (64位架構下iOS應用程序) 散列表 (散列表爲複雜的數據結構,包含了