情報を抽出するオブジェクトのテキスト ファイルがあり、データは次のように保存されます。
名前|説明|2013-10-19 23:25:58 +0000|いいえ|いいえ
名前|説明|2013-10-19 23:25:58 +0000|いいえ|いいえ
名前|説明|2013-10-19 23:25:58 +0000|いいえ|いいえ
各行を文字列の配列に入れるには、次のようにします。
NSArray *objectArray = [saveData componentsSeparatedByString:@"\n"];
次のような個々の文字列を含む配列が生成されます。
名前|説明|2013-10-19 23:25:58 +0000|いいえ|いいえ
次に、各文字列の各フィールドを追加します。
NSMutableArray *items = [[NSMutableArray alloc] init];
for (NSString *string in objectArray) {
[items removeAllObjects];
[items addObject:[string componentsSeparatedByString:@"|"]];
for (int i = 0; i < [items count]; i++) {
NSLog(@"%d %@", i, [items objectAtIndex:i]);
}
}
しかし、これは個々のフィールドではなく、行全体を生成するだけですか?
編集: 私の問題は、元の saveData 文字列にありました。最初にそれを検証しなかったことで私は正しく機能します!
上記のコードは問題なく動作し、次のような出力が生成されます。
2013-10-20 11:15:11.152 Wakely[3571:11603] 0 (
"name.1",
"desc",
"2013-10-20 00:15:05 +0000",
NO,
NO
)
2013-10-20 11:15:11.155 Wakely[3571:11603] 0 (
"name.2",
"desc",
"2013-10-20 00:15:07 +0000",
NO,
NO
)
[items objectAtIndex:0] を使用して、たとえば name1 を取得できるようにすべきではありませんか? 5 つの区切られた文字列ではなく、線で区切られた 1 つのオブジェクト全体として格納されているように見えますか?