亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ios 單例模式

發布時間:2020-06-22 09:37:34 來源:網絡 閱讀:426 作者:li你不知道 欄目:移動開發

單例模式的意思就是只有一個實例。單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。這個類稱為單例類。
1.單例模式的要點:
  顯然單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創建這個實例;三是它必須自行向整個系統提供這個實例。
2.單例模式的優點:
  1.實例控制:Singleton 會阻止其他對象實例化其自己的 Singleton 對象的副本,從而確保所有對象都訪問唯一實例。
  2.靈活性:因為類控制了實例化過程,所以類可以更加靈活修改實例化過程

#import <Foundation/Foundation.h> @interface CLPen : NSObject + (CLPen *)sharedCLPen; 
@end


#import "CLPen.h"

@implementation CLPen + (CLPen *)sharedCLPen { 

 寫法一 (錯誤的)
 + (CLPen *)sharedCLPen
 {
 static CLPen *pen = nil;
 if (pen == nil) {
 pen = [[CLPen alloc] init];
 }
 return pen;
 }
 

 寫法二 (錯誤的)
 + (CLPen *)sharedCLPen
 {
 static CLPen *pen = nil;
 @synchronized(self){
 if (pen == nil) {
 pen = [[CLPen alloc] init];
 }
 
 }
 return pen;
 
 }

一般選擇第三種書寫方式


   static CLPen *pen = nil;//第一步:為單例對象實現一個靜態實例,并初始化,然后設置成nil,
        //保證里面的方法只執行一次    
  static dispatch_once_t onceToken;//第二步:實例構造檢查靜態實例是否為nil    
  dispatch_once(&onceToken, ^{       
   pen = [[CLPen alloc] init];    
  });   
  return pen; 
  }
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东明县| 田东县| 涟水县| 西林县| 清镇市| 松滋市| 广灵县| 离岛区| 淮阳县| 鄂伦春自治旗| 茌平县| 海城市| 盐津县| 淄博市| 新疆| 赣榆县| 六盘水市| 淮北市| 开江县| 车致| 桦南县| 增城市| 普格县| 仁布县| 澎湖县| 富平县| 西贡区| 岚皋县| 镇康县| 株洲市| 江陵县| 盘锦市| 阜城县| 牟定县| 朝阳县| 聂荣县| 梅河口市| 额尔古纳市| 孟津县| 富锦市| 黄冈市|