我已经看到了一些很好的相关答案,但似乎无法将它们放在一起。 在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),但无法弄清楚如何从另一个类读取此数值,甚至是平面数组。 提前感谢任何见解。
答案 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部分......