單例類
什麼是單例類?
無論應用程式請求多少次,單例類都會返回相同的例項。與常規類不同,單例物件提供對其類資源的全域性訪問點。
何時使用 Singleton 類?
單例人員用於需要這個單一控制點的情況,例如提供一些一般服務或資源的類。
如何建立單例類
首先,建立一個新檔案並從 NSObject
繼承它。把它命名為什麼,我們將在這裡使用 CommonClass
。Xcode 現在將為你生成 CommonClass.h 和 CommonClass.m 檔案。
在你的 CommonClass.h
檔案中:
#import <Foundation/Foundation.h>
@interface CommonClass : NSObject {
}
+ (CommonClass *)sharedObject;
@property NSString *commonString;
@end
在你的 CommonClass.m
檔案中:
#import "CommonClass.h"
@implementation CommonClass
+ (CommonClass *)sharedObject {
static CommonClass *sharedClass = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedClass = [[self alloc] init];
});
return sharedClass;
}
- (id)init {
if (self = [super init]) {
self.commonString = @"this is string";
}
return self;
}
@end
如何使用 Singleton 類
只要你在相關模組中匯入了 CommonClass.h
檔案,我們之前建立的 Singleton 類就可以從專案的任何位置訪問。要修改和訪問 Singleton 類中的共享資料,你必須訪問該類的共享物件,可以使用 sharedObject
方法訪問該物件,如下所示:
[CommonClass sharedObject]
要讀取或修改共享類中的元素,請執行以下操作:
NSString *commonString = [[CommonClass sharedObject].commonString; //Read the string in singleton class
NSString *newString = @"New String";
[CommonClass sharedObject].commonString = newString;//Modified the string in singleton class