0

したがって、この便利なメソッドは、プロパティリストからNSDictionaryを作成するのが、ファイル/Webリソースから作成するほど簡単ではないという問題の解決策として作成しました。NSXMLParserを使用してこれ解析したり、サーバーがデータを送信する方法(jsonなど)を変更したりすることはできますが、現時点では問題ではありません。むしろ、このメソッドは間違いなく低速であり、衝突しやすいということです。 t rand()を使用して、.plistのファイル名を判別します。

それで、これをより速くすることは可能ですか?アプリを削除する間、ファイルが存在しないことを確認する必要があります。したがって、/tmpを使用します。

+ (NSDictionary *)dictionaryFromPropertyListString:(NSString *)stringToParse
{
    NSLog(@"dictionaryFromPropertyListString: %@", stringToParse);

    NSString *newFilePath = [NSTemporaryDirectory() stringByAppendingString:@"/Stuff.plist"];

    [stringToParse writeToFile:newFilePath atomically:YES encoding:NSASCIIStringEncoding error:nil];

    NSDictionary *dictionaryToReturn = [NSDictionary dictionaryWithContentsOfFile:newFilePath];

    NSLog(@"returned dictionary: %@", [dictionaryToReturn descriptionInStringsFileFormat]);

    return dictionaryToReturn;
}
4

1 に答える 1

3
NSString *error;
NSPropertyListFormat format;
NSDictionary* plist = [NSPropertyListSerialization propertyListFromData: [yourString dataUsingEncoding:NSUTF8StringEncoding] mutabilityOption: NSPropertyListImmutable format: &format errorDescription:&error];
于 2011-02-25T00:06:04.573 に答える