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