2012-01-09 4 views
-1

私はXCode4を使用していくつかの試作を試みていますが、私はObjectiveCを初めて使っています。ここに問題があります。 Javaでは、私が使用するオブジェクトを定義するには、このようなものを使用します。目的cの別のクラスの配列を含むクラスを作成できますか?

public class Event(){ 
String EventID; 
String EventName; 
ArrayList<EventTag> Tags; 

} 

だから、「EventTag」は別のクラスで、イベントが1つまたは複数のEventTagsを持つことができます。この方法では、私のオブジェクトは、私がそれを参照するときに必要なすべてを持っています。 Objective Cでこれと同等の方法がありますか?それとも、私が欲しいものにもっと良い方法があるのですか?

答えて

3

Objective-Cの同等クラスの宣言が見える

ありがとう:Objective-Cのコードスタイルインスタンス変数名は小文字で始めるべきだと

@interface Event:NSObject{ 
    NSString *eventID; 
    NSString *eventName; 
    NSMutableArray *tags; 
} 

注意。また、タグの特定の順序に興味がない場合は、配列の代わりにNSMutableSetを使用することもできます。

Objective-Cリファレンスのpropertiesセクションもチェックして、インスタンス変数へのアクセサメソッドを作成するobj-c方法を参照してください。

1

NSArray(または配列に要素を追加/削除する場合はNSMutableArray)を使用します。 Foundationを使用したObjective-C(つまり、NSクラスのクラス)では、コンテナを持ち、特定のタイプのみを含むように指定する方法はありません。すべてのコンテナにオブジェクト(つまり、タイプがidのもの)が保持されます。

1

あなたの例では、EventTagオブジェクトのみをサポートできるリストがあり、何か他のものを追加しようとすると、コンパイラは警告/エラーを生成します。 Objective-Cはそれをサポートしていません。のいずれかを保持できる "タイプなし"配列(静的配列の場合はNSArray、変更可能な配列の場合はNSMutableArray)のみがObjective-Cオブジェクトです。型付き型が必要な場合は、ラッパークラスを作成する必要があります。

関連する問題