如何在函数外部创建数组,并能够在其他函数中添加它

时间:2014-08-07 04:23:54

标签: ios objective-c arrays

似乎我做了类似的事情:

NSMutableArray *randomSelection = [[NSMutableArray alloc] init];

然后这需要在一个函数中,我以后可以使用不同的函数来修改它。

我试过在.h文件中实例化它,

@interface ViewController:
{
  NSMutableArray *Values;
}

但是当我尝试在运行时附加到它时,没有任何反应。我试着用它来附加它:

int intRSSI = [RSSI intValue];
NSString* myRSSI = [@(intRSSI) stringValue];
[Values addObject:myRSSI];

但是当我这样做时,阵列仍然是空的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

推荐的方法是创建属性;

// ViewController.h

@interface ViewController : UIViewController
{
}

@property (nonatomic, strong) NSMutableArray *values;

@end

然后覆盖该属性的getter,对其进行延迟初始化,即在第一次调用NSMutableArray属性的getter时分配和初始化数组:

// ViewController.m

@interface ViewController ()

@end

@implementation ViewController

- (NSMutableArray *)values
{
  if (!_values) {
    _values = [[NSMutableArray alloc] init];
  }

  return _values;
}

- (void)viewDidLoad
{
  [super viewDidLoad];

  //int intRSSI = [RSSI intValue];
  //NSString *myRSSI = [@(intRSSI) stringValue];
  //[self.values addObject:myRSSI];
  // Keep it simple:
  [self.values addObject:RSSI];
}

@end