でアレイにアクセスすることができますよりも、たとえば
NSMutableDictionary *result = [NSMutableDictionary dictionary];
for (NSString *str in [plistDict allObjects]) {
NSString *key = [NSString stringWithFormat:@"%d", [str length]];
NSMutableArray *array = [result objectForKey:key];
if (!array) {
array = [NSMutableArray array];
}
[array addObject:str];
[result setObject:array forKey:key];
}
ため
。
plistをXML形式で保存する場合は、NSXMLParser
を使用して解析することができます。スキーマは非常に単純で、Property List Programming Guideに幾分記述されています。
バイナリ形式を段階的に解析するには、さらに多くの作業を行う必要があります。形式の公式文書はありません。フォーマットを読み書きするためのAppleのソースコードはオープンソース(CFBinaryPList.c
)であり、実際のコードとともに有用なコメントがあります。
これを徐々に行う必要がある場合は、XMLルートに進んでください。そうであれば、NSInputStream
をサブクラス化して、gzipまたはbzip2ファイルから読み込み、その場で解凍することができます。
あなたが自己を見つけたなら、それは良いことです。解決策を回答として投稿したり、他の回答を受け入れることができます。 –
ドキュメントを読んだ後の現在の前提は、特に解析する方法がないということです。基本的にはファイル全体を読み込み、そこから処理します(Cの中で行ごとに読み込むことはできません)。さまざまなfget)。したがってNeverBeが提案するメソッドは私には十分に良いように見えます。私が読んだときに長さを保管しているので、もう2回繰り返す必要はありません。私のオリジナルの反復ループを超えたアップグレード – Paul