原创 swift類型檢查

/** 1.定義一個類層次作爲例子 2.檢查類型 3.向下轉型(Downcasting) 4.Any和AnyObject的類型檢查 類型檢查是一種檢查類實例的方式,並且或者也是讓實例作爲它的父類或者子類的一種方式 類型檢查在

原创 NSURLSession的POST請求及封裝

這是在.h文件中的聲明,需要聲明兩個block用來回調#import <Foundation/Foundation.h> typedef void(^SuccessBlock)(id newData, NSURLResponse * r

原创 Runtime學習筆記(一)——成員變量和屬性

最近開始學習runtime,想挖掘iOS的運行機制,經過幾天折騰,終於初窺門徑,首先記錄關於成員變量和屬性的學習內容 1.獲取成員變量 Ivar: 實例變量類型,是一個指向objc_ivar結構體的指針     typedef st

原创 swift附屬腳本

/** 1.附屬腳本語法 2.附屬腳本用法 3.附屬腳本選項 */ //附屬腳本 /** 附屬腳本可以定義在類、結構體和枚舉這些目標中,可以認爲是訪問對象、集合或序列的快捷方式,不需要再調用實例的特定的賦值和訪問方

原创 swift可選鏈

/** 1.可選鏈可替代強制解析 2.爲可選鏈定義模型類 3.通過可選鏈調用屬性 4.通過可選鏈調用方法 5.使用可選鏈調用子腳本 6.連接多層鏈接 7.鏈接自判斷返回值的方法 可選鏈是一種可以請求和調用屬性、方法及子腳

原创 關於MBProgressHUD自定義幀動畫

現在很多APP的HUD已經都是自定義動畫了,MBProgressHUD沒有開放的API可以讓我們直接使用,需要到.m文件中去修改源碼。 首先在.m文件中找到 - (void)updateIndicators 方法在 if (mode

原创 swift構造過程

/** 1.存儲型屬性的初始賦值 2.定製化構造過程 3.默認構造器 4.值類型的構造代理 5.類的繼承和構造過程 6.通過閉包和函數來設置屬性的默認值 與OC不同,swift的構造器無需返回值 */ //存儲

原创 swift析構過程

/** 1.析構過程原理 2.析構函數操作 在一個類的實例被釋放之前,析構函數被立即調用,用關鍵字deinit來標示析構函數,類似於初始化函數用init來標示。析構函數只適用於類類型 */ /** deinit

原创 swift泛型

/** 1.泛型所解決的問題 2.泛型函數 3.類型參數 4.命名類型參數 5.泛型類型 6.類型約束 7.關聯類型 8.where語句 泛型代碼可以讓你寫出根據自我需要定義、適用於任何類型的,靈活且可重用的函數和

原创 NSTimer在tableView中的複用問題

之前,有位朋友,在寫商品倒計時是,因爲定時器在tableview上總是被複用,使改界面拖延了很久,最好找我寫了個demo才解決。之後,還有不少iOS的朋友遇到類似複用的問題。這裏只講我這個demo中的關鍵代碼及對複用的理解,demo的下載

原创 swift自動引用計數

/** 在少數情況下,ARC爲了能幫助你管理內存,需要更多的關於你的代碼之間關係的信息 引用計數僅僅應用於類的實例,結構體和枚舉類型是值類型,不是引用類型,也不是通過引用的方式存儲和傳遞 爲了使之成爲可能,無論你將實例賦值給屬性,

原创 swift類型擴展

/** 1.擴展語法 2.計算型屬性 3.構造器 4.方法 5.下標 6.嵌套類型 擴展就是向一個已有的類、結構體或枚舉類型添加新功能。包括在沒有權限獲取原始源代碼的情況下擴展類型的能力(即逆向建模)。擴展和OC中的分類(

原创 swift類型嵌套

/** 1.類型嵌套實例 2.類型嵌套引用 枚舉類型常被用於實現特定類或結構體的功能。也能夠在有多種變量類型的環境中,方便地定義通用類或結構體來使用,爲了實現這種功能,swift允許你定義類型嵌套,可以在枚舉類型、類和結構體中定義

原创 swift協議

/** 1.協議的語法 2.屬性要求 3.方法要求 4.突變方法要求 5.協議類型 6.委託代理模式 7.在擴展中添加協議成員 8.通過延展補充協議聲明 9.集合中的協議類型 10.協議的繼承 11.協議合成 1

原创 代理傳值iOS9與之前版本的區別——提前釋放

這幾天,項目第一階段進入收尾和測試階段了,之前測試時,所有的設備都是iOS9的,這次用iOS8測試時,自定義封裝的彈出框出現了響應代理事件和代理傳值時崩潰的情況,用iOS7也是這樣。首先,我檢查了代碼,發現沒有iOS9以後的代碼,說明代碼