看起来如果我做类似的事情:
NSMutableArray *randomSelection = [[NSMutableArray alloc] init];
那么这需要在一个函数中,并且我以后无法使用不同的函数修改它。
我尝试在 .h 文件中实例化它,
@interface ViewController:
{
NSMutableArray *Values;
}
但是当我尝试在运行时附加到它时,什么也没有发生。我尝试添加以下内容:
int intRSSI = [RSSI intValue];
NSString* myRSSI = [@(intRSSI) stringValue];
[Values addObject:myRSSI];
但是当我这样做时,数组仍然是空的。
我该如何解决这个问题?
最佳答案
推荐的方式是创建属性;
// 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
关于ios - 如何在函数外部创建一个数组,并能够在其他函数中添加到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25174117/