0

こんにちは、インスタンス変数 NSMutable Array があります。

そのように宣言します

@property (nonatomic, assign) NSMutableArray *list;

viewDidLoad でインスタンス化します。

self.list = [NSMutableArray array];

次に、テキスト フィールドのテキストで構成される文字列を作成し、それを配列に追加します。

NSString * lines = [NSString stringWithFormat:@"%@,%@,%@,%@,%@", [self.crabText text], [self.trawlText text], [self.trapText text], [self.vesselText text], [self.lengthText text]];

    [self.list addObject:lines];

これは、テキスト フィールドの新しい値を配列に追加し続ける関数の一部です。

配列の内容を表示します

int i;
    int count;
    for (i = 0, count = [self.list count]; i < count; i = i + 1)
    {
        NSString *element = [self.list objectAtIndex:i];
        NSLog(@"The element at index %d in the array is: %@", i, element); // just replace the %@ by %d
    }

ただし、配列の内容を印刷しようとするとアプリがクラッシュし、

EXC_BAD_ACCESS_CODE

何か案は?

ありがとう!

4

2 に答える 2

3

次のように宣言を置き換えます。

@property (nonatomic, strong) NSMutableArray *list; // strong and not assign

viewDidLoad で配列を初期化します。

self.list = [NSMutableArray array];

文字列を1つずつ追加します:

[self.list addObject:self.crabText.text];
[self.list addObject:self.trawlText.text];
....

次に、 for ループを変更します。

for (int i = 0, i < self.list.count, i++)
{
    NSLog(@"The element at index %d in the array is: %@", i, [self.list objectAtIndex:i]);
}
于 2013-10-20T15:37:37.727 に答える
0

これを行う別の方法は、ヘッダー ファイルでこの方法で配列を宣言することです。

@interface yourViewController : UIViewController
{
    NSMutableArray* list;
}
@end

次に、ViewDidLoad で

list = [[NSMutableArray alloc] init];

ジョーダンが言ったように、他のすべてを行うことができます。どちらの実装でもパフォーマンスに違いがあるかどうかはわかりませんが。

于 2013-10-22T19:29:11.640 に答える