Swift-一些小的知識點

隨意記錄一些在學習iOS編程或者swift的時候碰到的一些小知識點,記錄下來以備不時之需。


這部分主要是學習高仿小日子的時候的一些筆記

  1. NSBundle

NSBundle是一個繼承自NSObject的類,這個類的對象主要的作用是幫助你訪問硬盤上的捆綁包目錄里的代碼和資源(An NSBundle object helps you access the code and resources in a bundle directory on disk)。蘋果使用捆綁包來呈 現app,框架,插件和其他特定類型的內容。捆綁包將他包含的資源organise在定義的非常好的子目錄里,并且捆綁包的 結構根據不同的平臺或者捆綁包的類型不同。通過使用一個bundle類的對象,你可以在不清楚捆綁包結構的前提下訪問他 所包含的資源。考慮到捆綁包的結構,用戶特性,可用的定位以及其他的一些因素,bundle類的對象提供一個單一的接口 用來定位名目(items)。

當你需要定位資源的時候,不論是在一個app的捆綁包內還是在一個已知位置的捆綁包內,你都可以使用NSBundle這個類的對象。在一個容器目錄里或者文件系統的其他部分,不用NSBundle這個類的對象。
下面是使用這個類的對象的通用做法:

  1. 為想要用的捆綁包目錄創建一個這個類的對象。
  2. 使用它的方法來定位或者加載所需要的資源。
  3. 使用其他系統API來與這些資源交互。

最主要使用的一個方法:
+ mainBundle:返回一個bundle對象,這個對象包含正在執行的內容。(一般也就是這個app所在的目錄)

swift
class func mainBundle() -> NSBundle
infoDictionaryProperty

infoDictionary這個屬性是從bundle的info.plist這個文件中創建的一個字典,這個字典包含接受者的一些信息。
A dictionary, constructed from the bundle's Info.plist file, that contains information about the receiver. (read-only)

  1. NSUserDefaults

這里有一篇文章講解的很好

  1. 屬性監視器willSet和didSet

看了這篇文章就什么都懂了
這篇文章也有個小補充

  1. 屏幕分辨率

方便適配圖片,你需要知道這些東西

  1. NSNotificationCenter

如果想要了解iOS的消息通知機制,我覺得你可能需要學習下這篇文章,當然還有這篇這篇也是不容錯過的。

  1. APPDelegate

APPDelegate是創建一個新工程后自動生成的,他主要完成的是對整個application的生命周期的管理的功能。
具體的講解如果你看了這篇文章,應該很清楚他在做什么。當然這篇文章也有些小補充可以看下。

  1. UITabbarController

最常見的創建UITabBarController的地方就是在APPDelegate中的 applicationDidFinishLaunching:方法,因為UITabBarController通常是作為整個程序的rootViewController的,我們需要在程序的window顯示之前就創建好它。程序的rootViewController通常需要在APPDelegate中創建好,因為需要在window顯示之前就要準備好。這篇文章或許可以幫助你更好的理解它。

  1. UINavigationController

UINavigationController是IOS編程中比較常用的一種容器view controller。 看了這篇文章之后,你應該就會對它比較了解了。

  1. deinit

反初始化函數,你可能需要這篇文章

  1. 類型屬性

關于swift語法中的屬性,你應該知道這些,或者這篇

  1. 單例

你應該閱讀這篇文章,來了解swift中的單例,也可以是這篇文章

  1. UICollectionView和UICollectionViewLayout

這篇文章還有這篇文章可以幫你了解。

  1. NSPredicate

看看這篇文章或許你能懂多點,或者這個.

  1. 正則表達式

正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。看看這個,這篇文章教你怎么用正則表達式。這里還有一些很棒的tips。

  1. SVProgressHUD

一款輕量級的 iOS 第三方控件, 用于顯示任務加載時的動畫, 非常輕便, 容易使用.這幾篇文章挺好的。
這個,這個,還有這個.

  1. MD5 in swift
    這里有文章

his is what I came up with. It's an extension to String. Don't forget to add #import <CommonCrypto/CommonCrypto.h>
to the ObjC-Swift bridging header that Xcode creates

    extension String  {

    /// 返回字符串的 MD5 散列結果

    var md5: String! {
    
      let str = self.cStringUsingEncoding(NSUTF8StringEncoding)   // 把string轉換成c-string的形式,使用特定的編碼方式
    
      let strLen = CC_LONG(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)) // Returns the number of bytes required to store the String in a given encoding.
    
      let digestLen = Int(CC_MD5_DIGEST_LENGTH)
    
      let result = UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)   // Allocate memory for num objects of type Memory. 分配內存后用一個指針指向這個內存地址,內存大小跟前面的類型參數有關

      CC_MD5(str!, strLen, result)    // 給result進行md5散列
    
      let hash = NSMutableString()
      for i in 0..<digestLen {
          hash.appendFormat("%02x", result[i])    // 把指針存儲到這個可變數組中
      }
    
      result.dealloc(digestLen)   // 釋放指針指向的內存 
      return hash.copy() as! String   // 返回這個可變數組
      }
    }
  1. NSSearchPathForDirectoriesInDomains

看下這篇文章吧

  1. UIActionSheet

UIActionSheet 可以彈出一個選擇列表,讓用戶選擇列表中的某一項操作。
關于actionSheet,建議看下唐巧的這篇博文

  1. clipsToBounds

決定了子視圖的顯示范圍。具體的說,就是當取值為YES時,剪裁超出父視圖范圍的子視圖部分;當取值為NO時,不剪裁子視圖。默認值為NO。

  1. UIBezierPath

看下這篇文章,或者這篇文章,這個.

  1. 搖一搖功能,相冊中選擇相片功能

這篇文章可以直接拿來用。

  1. 繪圖

先看看這篇文章有個大概的了解吧。

  1. NSFileManager 程序沙盒管理

這里這里,看看就大概了解了。

  1. try?

先看下這篇文章這篇文章.

  1. UIApplication

這個這個, 還有這個
這里面講了如何調用其他APP的。

  1. NSNotification

一般來說,通知的添加與移除應該是成對出現的,在viewdidappear中add observe,在viewdiddisappear中remove,這樣就不會重復添加。但是,ios7之后添加了手勢,當通過手勢操作VC的時候,比如從屏幕左邊沿往右滑VC,但不要觸發pop出去,這時候viewdidappear會重復出現,但viewdiddisappear一次也不出現,會導致重復添加。所以正確的做法是在add observe之前需要檢查并移除,這樣就不會重復添加了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容

  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,058評論 6 13
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,723評論 18 399
  • 不少人總是想了解學習PPT思路的內容,簡單的歸納了一下。 常見問題:——PPT高手是怎樣煉成的?(我怎么成為高手?...
    小巴閱讀 2,804評論 1 28
  • 當我想你的時候 我心里感到很難受 明知相思 無用處 無奈我心里 難忍相思苦 當我想你的時候 我心里感到很難受 人都...
    秋AldrichB果閱讀 258評論 2 9
  • 完美者: 完美者的弱點 1. 只能做中低層領導,不能做高級領導,比如事必躬親的諸葛亮; 2. 完美主義者(比如諸葛...
    煜糦閱讀 249評論 0 0