NSUserDefaults是系統(tǒng)自帶的一個(gè)輕量級數(shù)據(jù)本地化的一個(gè)方法,其本質(zhì)是一個(gè)單例。用戶名、密碼、網(wǎng)址等都適合使用NSUserDefaults來儲存。對于自定義的對象需...
NSUserDefaults是系統(tǒng)自帶的一個(gè)輕量級數(shù)據(jù)本地化的一個(gè)方法,其本質(zhì)是一個(gè)單例。用戶名、密碼、網(wǎng)址等都適合使用NSUserDefaults來儲存。對于自定義的對象需...
NSValue是NSNumber的父類結(jié)構(gòu)體 指針 復(fù)合類型 使用NSValue來封裝 int a[10]也可以來封裝封裝 上面的結(jié)構(gòu)體 NSValue * value =...
separator style UITableView 中的 separator 有三種類型: 通過修改 UITableView 的 separatorStyle 屬性修改 ...
_Nullable等用法__nullable 和__nonnull。從字面上我們可知, __nullable 表示對象可以是 NULL 或 nil,而 __nonnull 表...
在我們開發(fā)過程中有些時(shí)候要繪制折線圖或條形圖,要是做金融類的難免要接觸到K線圖今天我就來談?wù)勎业慕?jīng)驗(yàn)首先我們先花2分鐘來看看這一幅圖 在初中我們就知道 點(diǎn)動成線 線動成面 ...
使用valueForKeyPath 今天要說的是valueForKeyPath方法,而不是數(shù)組取值的valueForKey方法哦!大家不要弄錯了。 需求一(計(jì)算總合):假設(shè)一...
在OC中init開頭的方法, 我們稱之為構(gòu)造方法構(gòu)造方法的用途: 用于初始化一個(gè)對象, 讓某個(gè)對象一創(chuàng)建出來就擁有某些屬性和值 重寫init方法, 在init方法中初始化成員...
這里使用的函數(shù)為 CGContextSetLineDash,有四個(gè)參數(shù) CGContextSetLineDash(<#CGContextRef _Nullable c...
背景: 某天,你正在上班ing……這個(gè)時(shí)候老大過來了,“小明啊,這個(gè)按鈕太丑了,客戶要求變成五角星形狀的,UI沒空給你切圖,你給我完成這個(gè)需求啊”,說完便頭也不回的走了,留下...
<NSObject>協(xié)議 寫在前頭,上一篇我們介紹了NSObject基類中定義的函數(shù),但是我們發(fā)現(xiàn)在Cocoa有兩個(gè)NSObject,一個(gè)是類,一個(gè)是協(xié)議。為什么有兩個(gè)?用來...
在開發(fā)中我們經(jīng)常會需要判斷兩個(gè)控件是否包含重疊,此時(shí)如果控件A和B的坐標(biāo)原點(diǎn)如果不確定的話,那么肯定會導(dǎo)致比較不正確發(fā)生錯誤判斷包含重疊的代碼如下: 其中CGRectCont...
1. stringByAppendingString是字符串拼接,拼接路徑時(shí)要在名稱前加“/” 2. stringByAppendingPathComponent是路徑拼接,...
這個(gè)方法簡單說明一下,此方法應(yīng)該說是全能型界面切換的方法,它能根據(jù)當(dāng)前的試圖控制器情況來決定是用navVC的push方法還是普通VC的Modal方式來切 換界面。若當(dāng)前界面是...
NSTimer受runloop的影響,由于runloop需要處理很多任務(wù),導(dǎo)致NSTimer的精度降低,在日常開發(fā)中,如果我們需要對定時(shí)器的精度要求很高的話,可以考慮disp...
本文首發(fā)于我的個(gè)人博客:「程序員充電站」[https://itcharge.cn]文章鏈接:「傳送門」[https://itcharge.cn/ios-complete-le...
很多人實(shí)現(xiàn)單例會這樣寫: 相比之下: 使用dispatch_once可以簡化代碼并且徹底保證線程安全,開發(fā)者無需擔(dān)心加鎖或同步。此外,dispatch_once更高效,它沒有...
UIView有CGAffineTransform類型的屬性transform,它是定義在二維空間上完成View的平移,旋轉(zhuǎn),縮放等效果的實(shí)現(xiàn)。 初始化: CGAffineTr...