私はiTunesでCP193クラスを見てきましたが、よくあるメッセージは再利用性です。
NSMutableArrayの形式のリストを持つプログラムを作成しています。私はこのクラスに何度もアクセスします。
そこで、配列にNSStringを設定する関数を使用してNSMutableArrayクラスを作成しました
@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]を追加しても機能しませんか?
編集:
Geology.h
@interface Geology : NSMutableArray
- (void) setupGeology;
@終わり
Geology.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]);
}