【问题标题】:creating a global class objective-c?创建一个全局类objective-c?
【发布时间】:2012-10-25 07:50:34
【问题描述】:

我想在objective-c 中创建一个已经存储数据的类,以便访问数据我不想实例化该类。我该怎么做?

【问题讨论】:

    标签: objective-c global-variables instantiation


    【解决方案1】:

    您可以使用单例,也可以使用仅由类方法组成的类并允许您访问静态数据。

    这是 ObjC 中的基本单例实现:

    @interface MySingleton : NSObject
    {
    }
    
    + (MySingleton *)sharedSingleton;
    
    @property(nonatomic) int prop;
    -(void)method;
    
    @end
    
    @implementation MySingleton
    @synthesize prop;
    
    + (MySingleton *)sharedSingleton
    { 
      static MySingleton *sharedSingleton;
    
      @synchronized(self)
      {
        if (!sharedSingleton)
          sharedSingleton = [[MySingleton alloc] init];
    
        return sharedSingleton;
      }
    }
    
    -(void)method {
    
    }
    
    @end
    

    然后你像这样使用它:

    int a = [MySingleton sharedSingleton].prop
    
    [[MySingleton sharedSingleton] method];
    

    基于类方法的类是:

    @interface MyGlobalClass : NSObject
    
    + (int)data;
    
    @end
    
    @implementation MySingleton
    
    static int data = 0;
    + (int)data
    { 
       return data;
    }
    
    + (void)setData:(int)d
    { 
       data = d;
    }
    
    @end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      相关资源
      最近更新 更多