我对iOS 5单身人士有些陌生,我正在使用这里记录的单身人士:
这样的事情:
MyManager.h
#import <Foundation/Foundation.h>
@interface MyManager : NSObject
//Data for section 1
@property(nonatomic,copy) NSString * section1a;
@property(nonatomic, assign) NSUInteger section1b;
//Data for section 2
@property(nonatomic,copy) NSString * section2a;
@property(nonatomic, assign) NSUInteger section2b;
+ (id)sharedInstance;
@end
MyManager.m
@implementation MyManager
@synthesize section1a, section1b, section2a; , section2b;
+ (id)sharedInstance
{
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init]; // or some other init method
});
return _sharedObject;
}
@end
所以我按如下方式使用它:
MyManager * myManager = [MyManager sharedInstance];
myManager.data = self.data
这是你一般如何使用单身人士吗?我错过了什么吗? 对不起,我只是想确保我做得对的基本问题。
由于
答案 0 :(得分:1)
这不是单例,因为您可以使用alloc / init方法创建此类的多个实例。 正确答案is here
答案 1 :(得分:1)
你做得对。这是(目前:)的方式,并启用ARC,多线程等。
它不是严格意义上的单例,因为你可以分配更多的类实例,但我不认为这与你的情况有关。
答案 2 :(得分:0)
我通常会制作我的单身人士(假设我们为经理制作单身人士):
static (Manager *) instance;
+ (Manager *) getInstance
{
if(!instance) instance = [[Manager alloc] init];
return instance;
}
这是一个非常基本的单例(它没有考虑多线程或其他高级功能),但这是基本格式。
答案 3 :(得分:0)
请参阅:Singleton in iOS 5?您应该覆盖allowWithZone以防止恶意代码创建新实例。