我想在类中创建并填充数组,然后在主程序中使用数组中的内容......例如,我将使用美国各州名称列表...
这是对原始问题的更新,该问题已中途解决,并且为了清晰起见而感到满意,因此您可以正确查看代码。
ArrayStates.h
#import <Foundation/Foundation.h>
@interface ArrayStates : NSObject
@end
ArrayStates.m
#import "ArrayStates.h"
@interface ArrayStates() { NSMutableArray *listOfStates; }
@implementation ArrayStates
- (void)viewDidLoad {
//---initialize the array---
listOfStates = [[NSMutableArray alloc] init];
//---add items---
[listOfStates addObject:@"ALABAMA"];
[listOfStates addObject:@"WYOMING"];
[super viewDidLoad];
}
@end
这是上一个问题的更新代码,但它仍然在实现行上生成了Missing end错误,void想要一个。在方法原型之后,你仍然无法在主程序中引用该对象。
我认为如果接口和实现区分数组是否可以在类内部或外部访问(我感谢iHungry),我认为改变了顺序。
答案 0 :(得分:2)
创建一个像Mundi这样的属性在.h中说,然后只需要导入ArrayStates.h,你需要访问该数组。然后,您可以创建类ArrayStates的实例(创建一个对象和alloc-init),然后使用该对象访问其listOfStates属性。
答案 1 :(得分:1)
在viewDidLoad方法中,您必须先调用super。 顺便说一下,你的ArrayStates类是NSObject的子类,所以它的方法viewDidLoad将不会被调用!
答案 2 :(得分:1)
// in ArrayStates.h
@interface ArrayStates : NSObject
@property NSMutableArray *listOfStates;
@end
// in ArrayStates.m
@implementation ArrayStates
@synthesize listOfStates;
//...
-(void)viewDidLoad {
[super viewDidLoad];
listOfStates = [[NSMutableArray alloc] init];
}
@end
// in some other class
ArrayStates *states = [[ArrayStates alloc] init];
NSLog(@"%@", states.listOfStates);