这是单例类NetAccess中定义并实现的类方法,用来创建对象。
+ (NetAccess *)sharedNetAccess
{
if(!_sharedNetAccess)
{
_sharedNetAccess = [[NetAccess alloc] init];
}
return _sharedNetAccess;
}
我不懂,为什么不在使用的地方直接NetAccess *myNet=[NetAccess alloc]init];?单例类
+ (NetAccess *)sharedNetAccess
{
if(!_sharedNetAccess)
{
_sharedNetAccess = [[NetAccess alloc] init];
}
return _sharedNetAccess;
}
我不懂,为什么不在使用的地方直接NetAccess *myNet=[NetAccess alloc]init];?单例类
+ (NetAccess *)sharedNetAccess
{
static NetAccess *sharedNetAccess;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedNetAccess = [[NetAccess alloc] init];
});
return sharedNetAccess;
}单例,顾名思义,只存在唯一的实例,是一个静态的实例,也就是说无论你在A类B类或C类调用[NetAccess sharedNetAccess];它的地址都是一样的。
这样子做有很大的方便之处,比如它有一个整形变量a,你先在A类赋值为5,然后在B类调用,它的值还是5。
NetAccess *myNet=[NetAccess alloc]init];在B类:
NetAccess *myNet=[NetAccess alloc]init];将产生不同地址的两个NetAccess对象,这样就达不到数据共用的目地了