如何设置和让我的数组使用类在我的应用程序中访问?

时间:2013-06-05 19:46:28

标签: objective-c

我有一个需要从数据库访问客户的应用。我已经获得了一系列数据,但我需要在我的应用中的几个视图中分享它。

我创建了这个名为Customers的类,但我不确定如何调用和设置/获取我的NSMutableArray客户。

是否有一个很好的例子,或者有人可以向我展示的代码片段?

#import "Customers.h"

@implementation Customers

 static NSMutableArray *customers; 
 // I need to set/access the customers array class from all views.

 + (NSMutableArray *)allCustomers 
 {
  if !(customers) 
  {
   customers = [NSMutableArray array];
  }
  return customers;
 }
 @end

2 个答案:

答案 0 :(得分:1)

我建议你阅读有关单身人士模式的内容。使用单例模式,您可以确保一个类初始化一次并保持不变。通过这种方式,您可以从任何地方轻松地访问此类,并以此方式从任何类获取和设置其数组。

obj-c中的单身人士:http://www.galloway.me.uk/tutorials/singleton-classes/

它看起来像这样:

接口:

@property (nonatomic, strong) NSMutableArray *customers;

+ (Customers *)sharedCustomers;

实现:

+ (Customers *)sharedCustomers
{
    static Customers *sharedCustomers;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedCustomers= [[Customers alloc] init];
    });
    return sharedCustomers;
}

然后从任何地方,通过导入“Customers.h”,您可以获取并设置数组。

获得:

[[Customers sharedCustomers] customers];

设置:

[[Customers sharedCustomers] setCustomers:...];

答案 1 :(得分:0)

似乎您正在使用类对象作为单例,以授予对文件私有变量的访问权。

您可以继续将(类)方法添加到:

  1. 从文件/网络或任何地方
  2. 读取数据库
  3. 搜索数组
  4. e.g。

    + (id) customerAtIndex:(NSUInteger) index
    {
        return [customers objectAtIndex:index];
        // (perhaps you can add a bounds check)
    }
    
    + (void) insertCustomer:(id) customer atIndex:(NSUInteger) index
    {
        [customers insertObject:customer atIndex:index];
        // (perhaps you can add a bounds check)
    }