Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @interface MySingleton : NSObject
- {
- SomeClass* _someClass;
- }
- @property (class, readonly, strong) Class_B* shared;
- @end
- @protocol SomeProtocol
- @end
- @interface SomeClass : NSObject <SomeProtocol>
- @end
- @interface MySingleton : NSObject
- {
- id<SomeProtocol> _someClass;
- }
- @property (class, readonly, strong)MySingleton* shared;
- - (instancetype)initWithSomeClass:(id<SomeProtocol>)someClass;
- @end
- @implementation MySingleton
- + (MySingleton*)shared {
- static MySingleton* mySingleton;
- static dispatch_once_t predicate;
- dispatch_once(&predicate, ^{
- SomeClass* someClass = [[SomeClass alloc] init];
- mySingleton = [[MySingleton alloc] initWithSomeClass:someClass];
- });
- return mySingleton;
- }
- - (instancetype)initWithSomeClass:(id<SomeProtocol>)someClass {
- self = [super init];
- if (self) {
- _someClass = someClass;
- }
- return self;
- }
- @end
- @interface someClassFake : NSObject <SomeProtocol>
- @end
- SomeClassFake* someFakeClass = [[SomeClassFake alloc] init];
- MySingletone* mySingleton = [[MySingleton alloc] initWithObject: someClassFake];
- @interface MySingleton : NSObject
- {
- id<SomeProtocol> _someClass;
- }
- @property (class, readonly, strong)MySingleton* shared;
- @end
- @implementation MySingleton
- + (MySingleton*)shared {
- static MySingleton* mySingleton;
- static dispatch_once_t predicate;
- dispatch_once(&predicate, ^{
- mySingleton = [[MySingleton alloc] init];
- });
- return mySingleton;
- }
- - (void)setSomeClass:(id<SomeProtocol>)someClass {
- _someClass = someClass;
- }
- @end
- SomeClass* someClass = [[SomeClass alloc] init];
- [MySingleton.shared setSomeClass:someFakeClass];
- SomeClassFake* someFakeClass = [[SomeClassFake alloc] init];
- [MySingleton.shared setSomeClass:someFakeClass];
- @interface MySingleton (Shared)
- @property (class, readonly, strong)MySingleton* shared;
- @end
- @implementation MySingleton (Shared)
- + (MySingleton*)shared {
- static MySingleton* mySingleton;
- static dispatch_once_t predicate;
- dispatch_once(&predicate, ^{
- SomeClass* someClass = [[SomeClass alloc] init];
- mySingleton = [[MySingleton alloc] initWithSomeClass:someClass];
- });
- return mySingleton;
- }
- @end
Add Comment
Please, Sign In to add comment