Xcode从另一个类访问多维数组

时间:2015-02-10 16:36:33

标签: objective-c arrays multidimensional-array

我已经看到了一些很好的相关答案,但似乎无法将它们放在一起。 在Xcode 6.1中,我想创建一个包含列和行的2D数组(两种类型都是NSString)。我想在声明它的同一个类中填充数组。 然后我想从代码中的其他类访问该数组的值。这样我只需要保留一个数组并根据需要更新它。我理解最好从外部文件中读取程序中的值,但我对xCode(Objective-C)很新,而且进展非常慢,所以这是我的方法,这就是我所拥有的(所以仅限1D):

@interface Criteria : NSObject
@property (nonatomic) NSArray *columnRow;
@end

#import "Criteria.h"
@implementation Criteria
@synthesize columnRow = _columnRow;
- (NSArray*) columnRow{
    return [[NSArray alloc]initWithObjects:@"c1", @"c2", @"c3", @"c4", @"c5", nil];
}

我可以将其转换为2D数组(仍然是WIP),但无法弄清楚如何从另一个类读取此数值,甚至是平面数组。 提前感谢任何见解。

1 个答案:

答案 0 :(得分:0)

我想我有一个解决方案。在类的接口中,将其称为MyClass,它保存数组,创建数组属性:

@property (nonatomic) NSMutableArray * columnRow;

然后,在同一个MyClass的实现中,填充我的数组(感谢用户解释了没有本网站上的setter的getter)

@synthesize columnRow = _columnRow;
- (NSMutableArray*) columnRow{
    return [[NSMutableArray alloc]initWithObjects:@"c1", @"c2", @"c3", @"c4", @"c5", nil];
}

然后,在其他一些类中,实现#import“PlayCriteria.h”和viewDidLoad:

MyClass *myArray = [[MyClass alloc] init];
NSMutableArray *myChoices = [[NSMutableArray alloc] initWithArray: myArray.columnRow];
for (int i = 0; i < myChoices.count; i++) {
    NSLog(myChoices[i]);
}

此实施是否存在任何缺陷?有没有更好的方法来实现它?我还需要它的2D部分......