0

ちょっと(たぶん)非常に単純な質問があって、私の脳は引き裂かれます。

クラス「ArrayClass」を作成しました:

//  ArrayClass.m


#import "ArrayClass.h"

@implementation ArrayClass{

    NSMutableArray *NameList;

}

@end

ここで、メイン ファイル内のこのクラスのオブジェクトに対してこの配列を埋めたいと思います。

これでいいと思ったのですが、残念ながら結果は出ませんでした。

//Main File:

//Create an object

ArrayClass *object_bla = [[ArrayClass alloc] init];

では、どうすれば「object_bla」オブジェクトで配列を埋めることができますか?

この配列にアクセスできません。通常の int 変数などでは問題ありません。


実際、私は昨日よりも長くはありません。それが私がやろうとしていることです。

配列を作成するクラスが必要です。これは、後でこの配列にユーザー入力を入力したいためです。

だから私は私のクラスを手に入れました:

AClass.h

#import <Foundation/Foundation.h>

@interface AClass : NSObject

//Array deklarieren
@property NSMutableArray *WordList;


@end

*WordList 配列にアクセスするために、このクラスのオブジェクトを作成したいメイン ファイルにはありません。後でクラスはより多くのものを手に入れるので、それは今試しています. 私は C++ 開発者であり、objective-c を初めて使用するので、初歩的な質問をお詫びします。

それが私がこれまでに行ったことです:

#import <Foundation/Foundation.h>
#import "AClass.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {

    //create object
    AClass *blabla = [[AClass alloc] init];

    //fill array
    [blabla.WordList addObject:@"GünterKörper"];

    //output
    for (int i = 0; i<[blabla.WordList count]; i++){
        NSLog(@"Objekte: %@", [blabla.WordList objectAtIndex:i]);
    }


    }
    return 0;
}

しかし、それは私に何も与えません。配列が空です。ここで何が欠けていますか?

あいさつ

4

2 に答える 2

1

propertyforを作成する必要がありますNameList

@property (strong) NSMutableArray *NameList;

次に、mainファイルに

メインにa を作成し、tempArray配列で埋めてから、次を使用します。

NSMutableArray *tempArray=[NSMutableArray arrayWithArray:@[@"A",@"B",@"C"]];
[object_bla setNameList:tempArray;

一度に 1 つのオブジェクトを追加する場合:

[object_bla.NameList addObject:@"new object"];
于 2013-04-08T14:03:12.503 に答える
0

オブジェクトを追加する前に、配列をインスタンス化する必要があります。これは、さまざまな方法で実行できます。

1 - カスタム クラスの init メソッドで:

@implementation AClass 

- (id)init {
    self = [super init];
    if (self) {
        _WordList = [[NSMutableArray alloc] init];
    }
    return self
}

// Rest of class implementation...

@end

2 - カスタム クラスに独自のプロパティ ゲッターを実装して、遅延読み込みを使用します。

@implementation AClass 

- (NSMutableArray *)WordList {
    if (_WordList == nil) {
        _WordList = [[NSMutableArray alloc] init];
    }
    return _WordList;
}

// Rest of class implementation...

@end

オブジェクトを実際に参照するときにのみメモリを割り当てるため、2 番目の方法がおそらく推奨されます。

于 2013-04-09T08:17:35.263 に答える