【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]



いいなと思ったら応援しよう!