你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS下單例模式實現(objective-c arc gcd)

iOS下單例模式實現(objective-c arc gcd)

編輯:IOS開發綜合
單例模式確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。   這裡主要介紹下在arc下,利用gcd實現單例。       第一步:聲明一個靜態實例    static SoundTool *_instance;   第二步:重寫初始化方法   + (id)allocWithZone:(struct _NSZone *)zone   在對象初始化分配內存的時候都會調用這個方法,重寫該方法時,即便用戶沒用通過shared方法獲取實例,自己初始化依然可以保證得到的是同一個實例。   在gcd後,多線程下保證一個代碼只被執行一次提供了一個便捷的方式就是dispatch_once。   這個代碼方法並不需要認真記憶。在xcode中已經內置了代碼段。敲下dispath_once就會有智能提示。           第三步:聲明一個類方法共享實例   + (SoundTool *)sharedSoundTool   @implementation SoundTool   static SoundTool *_instance;   + (SoundTool *)sharedSoundTool   {     static dispatch_once_t onceToken;       dispatch_once(&onceToken, ^{           _instance=[self new];     });       return _instance; }   + (id)allocWithZone:(struct _NSZone *)zone {     static dispatch_once_t onceToken;       dispatch_once(&onceToken, ^{           _instance=[super allocWithZone:zone];       });     return_instance; } @end  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved