如何在目标C中创建简单的Singleton类?

里克·罗伊德·阿班

我已经习惯Java并且目前正在学习过程中Objective-C

基本上我会这样创建SingletonJava

public class SingletonClass{
  private static instance; //Step 1

  public static SingletonClass getInstance(){ //Step 2
    if(instance == null)
      instance = new SingletonClass();

    return instance;
  }
} 

很简单吧?

但是我发现很难为此创建直接解决方案 Objective-C

我确实是这样的:

@implementation SingletonClass(){
  //I want to do step 1 here which is to make a private static instance;
  //it is said that private variables are declared here
  static SingletonClass *instance; //but it is said that static keyword is different here
}

//then I would do something like step 2
+ (id)getInstance{
  if(instance == nil)
    instance = self;

  return instance;
}

@end

问题是有一个错误:Type name does not allow storage class to be specified

你们如何在Objective-C中进行简单的Singleton课程?

扎夫

用途dispatch_once_t

从Apple文档中获取dispatch_once(3)
dispatch_once()函数提供了一种简单而有效的机制,可以仅一次运行一次初始化程序,类似于pthread_once(3)。

另请参阅:Mike Ash的dispatch_once秘密

+(instancetype)sharedInstance
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[SingletonClass alloc] init];
    });
    return sharedInstance;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中创建简单的单例类?

来自分类Dev

如何在目标C中创建CBUUID

来自分类Dev

如何在flutter中创建SharedPreferences的Singleton类

来自分类Dev

如何在类方法目标C中访问自己

来自分类Dev

如何在目标c中为此代码创建函数

来自分类Dev

如何在目标C中创建类似Android的Edittext(TextInputLayout)?

来自分类Dev

如何在目标C中创建事件循环?

来自分类Dev

如何在目标C中创建类似Android的Edittext(TextInputLayout)?

来自分类Dev

如何在目标c中创建调度队列?

来自分类Dev

如何在Objective-C中创建简单加法?

来自分类Dev

如何在Swift中实现Singleton类

来自分类Dev

如何在用C ++创建的类中创建数组?

来自分类Dev

如何在C ++中的Normal或Singleton类内GoogleTest私有方法/枚举类

来自分类Dev

如何在Dart中创建一个简单的Tuple类?

来自分类Dev

如何在Firebase中创建简单的API?

来自分类Dev

如何在Activity类中实现Singleton类

来自分类Dev

如何在类中创建类的属性?

来自分类Dev

如何在类中创建类的属性?

来自分类Dev

如何在类C ++中创建四个线程

来自分类Dev

如何在C ++中创建类对象的向量?

来自分类Dev

如何在C ++中创建抽象类的数组

来自分类Dev

如何在C ++中创建模板包装器类

来自分类Dev

如何在C#中创建类对象列表的数组

来自分类Dev

如何在目标C中从超类重写私有方法和属性

来自分类Dev

如何在目标C中从超类重写私有方法和属性

来自分类Dev

如何在目标C中执行chmod()

来自分类Dev

如何在目标C中实现for循环

来自分类Dev

如何在目标C中显示时间

来自分类Dev

如何在目标C中执行chmod()

Related 相关文章

热门标签

归档