【Objective-C】シングルトンパターンの実装【Xcode10.2対応】
こういう人に向けて発信しています。
・シングルトンの実装方法について知りたい。
・コピペでできるシングルトンの実装方法を知りたい
・Objective-C初心者
参考
DataManager.h
#import <Foundation/Foundation.h>
@interface DataManager : NSObject
@property (nonatomic) NSArray *singletonArray;
+ (DataManager *)sharedManager;
-(void)setSingletonArray:(NSArray *)array; //demoMethod
@end
DataManager.m
#import "DataManager.h"
@implementation DataManager
static DataManager *sharedData_ = nil;
+ (DataManager *)sharedManager{
@synchronized(self){
if (!sharedData_) {
sharedData_ = [DataManager new];
}
}
return sharedData_;
}
- (id)init
{
self = [super init];
if (self) {
//Initialization
}
return self;
}
//demoMethod
-(void)setSingletonArray:(NSArray *)array{
self.singletonArray = array;
}
@end
他クラスから呼び出す時の書き方
NSArray *array = @[];
(A)
[[DataManager sharedManager] setSingletonArray:array];
//もしくは
(B)
DataManager *singleton = [DataManager sharedManager]
[singleton setSingletonArray:array]