0

私のアプリには4つのテキストフィールド(0、1、2、3)があります。ユーザーが何かを入力して return-Key を押すと、この textField の内容を配列に保存したいと思います。しかし、私は正しい順序が必要です。たとえば、ユーザーが最初に textField 2 に情報を入力しaddObject:、コンテンツを呼び出すと、インデックス 0 になります。使用しようとしましinserObjectAtIndex:たが、配列が空 (カウント = 0) であるため機能しません。試すinitWithCapacityことも解決策ではありません。最初に空の文字列で配列を初期化しようとはしませんでしたが、これは悪い解決策です。では、どうすればこれをスマートな方法で修正できますか?? 助言がありますか??

4

1 に答える 1

2

文字列を保存する場合は、 4 つのオブジェクトを含む NSMutableArray を使用しNSNull、適切なオブジェクトを置き換えます。

このようなもの:

NSMutableArray *dataSource = [NSMutableArray arrayWithArray:@[[NSNull null], [NSNull null], [NSNull null], [NSNull null]]];

// check if object is set
if ([dataSource objectAtIndex:0] != [NSNull null]) {
    // object is set
    textField0.text = [dataSource objectAtIndex:0];
}
else {
    // object is not set
    textField0.text = nil;
}

// set object
[dataSource replaceObjectAtIndex:0 withObject:@"Foobar"];

NSStrings を扱っているため、空の文字列@""をプレースホルダーとして使用することもできます。これにより、すべてが簡単になります。しかし、NSNull オブジェクトで満たされた NSArray は、より一般的なアプローチです。

于 2013-06-08T18:33:18.273 に答える