iOS單例模式的實現

2021-06-05 11:17:10 字數 737 閱讀 5298

單例是指靜態分配的例項,而 iphone sdk 中全是這種例項,例如

將類方法與單例相結合,便可以在程式的任何地方訪問靜態例項,而無需使用指向物件的指標或儲存它的例項變數。建立類的唯一例項(普通單例)的函式示例:

//在很多時候,我們使用某個類的唯一例項。最常見的就是乙個程式的主類,以下是以名為 rootviewcontroller 建立的乙個單例函式:

static rootviewcontroller *sharedrootcontroller = nil;

+(rootviewcontroller *) sharedcontroller  

}return sharedrootcontroller;

} +(id) allocwithzone:(nszone *)zone

}  

return nil;

}**說明: 

1、synchronized 這個主要是考慮多執行緒的程式,這個指令可以將 內的**限制在乙個執行緒執行,如果某個執行緒沒有執行完,其他的執行緒如果需要執行就得等著。 

2、網上搜尋的**,好像有乙個沒有加入 autorelease,我覺得應該需要加。因為如果呼叫的函式沒有release就麻煩了(我覺得,ios 上的程式,對於建立用於函式返回值的,都應該考慮 autorelease)。

3、allocwithzone 這個是過載的,因為這個是從制定的記憶體區域讀取資訊建立例項,所以如果需要的單例已經有了,就需要禁止修改當前單例,所以返回 nil。

iOS單例模式的實現

單例是指靜態分配的例項,而 iphone sdk 中全是這種例項,例如 將類方法與單例相結合,便可以在程式的任何地方訪問靜態例項,而無需使用指向物件的指標或儲存它的例項變數。建立類的唯一例項 普通單例 的函式示例 在很多時候,我們使用某個類的唯一例項。最常見的就是乙個程式的主類,以下是以名為 roo...

iOS單例模式的實現

在objective c中要實現乙個單例類,一般需要如下步驟 1 為單例物件實現乙個靜態例項,並初始化,然後設定成nil,2 實現乙個例項構造方法檢查上面宣告的靜態例項是否為nil,如果是則新建並返回乙個本類的例項,3 重寫allocwithzone方法,用來保證其他人直接使用alloc和init試...

IOS 單例模式

單例模式顧名思義就是只有乙個例項,它確保乙個類只有乙個例項,並且自行例項化並向整個系統提供這個例項。它經常用來做應用程式級別的共享資源控制。這個模式使用頻率非常高,通過乙個單例類,可以實現在不同視窗之間傳遞資料。在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙...