2011-02-01 4 views
0

私はクラスabcParserを持っています。私は配列を持っていますarrayXYZ。今、私は、継承に弱いメートルarrayXYZが別のクラスの配列を使用する必要があります。エラーはarrayXYZ宣言されていません!

を宣言されていない..私はそれがエラーを与える行うとき.. のViewControllerで、この配列を使用する必要があり、助けてください! ありがとうございます!

+0

これは、オブジェクト指向のアプローチを客観的に理解していないかのように思えます。私はあなたに "Learning Objective-C:A primer" http://bit.ly/a3pl89と "The Objective-c programming言語 "http://bit.ly/g1s0Iu – Robin

答えて

0

あなたがそうのように、配列を取得することができますABCParser内の関数宣言:

-(NSArray *)arrayXYZ:(NSString *)anArgument{ 
    NSArray *array = [NSArray arrayWithObject:anArgument]; 

    return array; 
}

EDIT:

さてさて、私たちはインスタンス化などにはほとんどのレッスンを必要とするように思えるが...

メソッド名の横にプラス記号(+)とマイナス記号( - )が付いています...

プラスはクラスメソッドです。インスタンス化せずに使用できますが、これらを使用するときに変数を引き継ぐことはできません。

インスタンスメソッドでは、新しいオブジェクトをインスタンス化し、メソッドを実行するよう要求する必要があります。

ABCParser *parser = [[ABCParser alloc] init];

これは、ABCParserの新しい 'インスタンス'を作成し、その名前を 'parser'という名前でポインターを作成します。それはすべて罰金とダンディーです。私たちはこの新しいパーサオブジェクトが何かをしたい場合は

は、我々は通常のようにそれを伝える:

だから、
NSArray *myNewArray = [parser arrayXYZ];

- あなたのクラスのインスタンスを持っている場合は、次の操作を行います。

ABCParser *parser = [[ABCParser alloc] init]; 

[parser generateArrayXYZ]; 
NSArray *array = [parser getArrayXYZ];

これは、あなたが作業できるオブジェクトを提供します。それは慣れていくのに少し慣れますが、あなたは学びます。それ以上の説明が必要な場合は、ただ投稿してください:

+0

どのように私はviewControllerからその関数を呼び出す必要がありますか? – Zaraki

+0

私は答えを注釈します。 –

+0

多くのことを助けてくれてありがとう、ありがとう。私のばかげた疑問のためにあなたに連絡することができますか? :) – Zaraki

0

abcParserのNSArray変数に既に@propertyと@syntesizeを追加しましたか?

関連する問題