我一直在看 iTunes 上的 CP193 课程,常见的信息是可重用性。
我正在创建一个具有 NSMutableArray 形式的列表的程序。我将一遍又一遍地访问这个类。
所以我创建了一个 NSMutableArray 类,其中包含一个在数组中设置 NSStrings 的函数
@interface Geology : NSMutableArray
- (void) setuparray;
在我的实现文件中
[super addobjects:@"object1"];
我想用里面已经存在的对象初始化这个对象。我使用以下代码在 ViewController 中导入了头文件:
Geology *geology = [[Geology alloc] initWithCapacity:5];
[geology setuparray];
NSLog(@"%@", [geology objectAtIndex:1];
但是,该程序无法编译并出现以下错误:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“ * -[NSMutableArray initWithCapacity:]:仅为抽象类定义的方法。定义 - 地质 initWithCapacity:]!
因此,我需要在我的新文件中定义容量。但是,即使我在文件中添加 [Super initWithCapacity] 它仍然不起作用?
编辑:
地质学.h
@interface Geology : NSMutableArray
- (void) setupGeology;
@结尾
地质学.m
@implementation Geology
- (void) setupGeology{
[super initWithCapacity:1];
[super addObject:@"object1"];
}
@end
在我的 ViewController 我有
#import "Geology.h"
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
Geology *geology = [[Geology alloc] initWithCapacity:5];
[geology setupGeology];
NSLog(@"%@", [geology objectAtIndex:1]);
}