0

次の形式で Json データを返す .net Web サービスがあります。

        NSDictionary *json = [NSJSONSerialization JSONObjectWithData:dataPlist options:NSJSONReadingMutableContainers error:&errorJson];

[
{
    "MEMBERID": "xxx",
    "PREFIXINFORMAL": "Mr.",
    "FIRSTNAME": "xxx",
    "MIDDLENAME": "xxxx",
    "LASTNAME": "xxxx",
    "SUFFIX": xxxx
}

]

この NSDictionary を plist に保存する私のコード:

            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:@"boardMemberInfo.plist"];
        NSDictionary *test = [NSDictionary dictionaryWithObject:@"test" forKey:@"test"];
        for(NSDictionary *item in json) {
            BOOL success = [item writeToFile:path atomically:YES];
            if(success) {
                NSLog(@"Success Saving New plist");
            } else {
                NSLog(@"Failure Saving New plist");
            }
        }

[item writeToFile...] も [json writeToFile...] も機能しません。ただし、単純な [test writeToFile...] は機能します。私は何が欠けていますか?

ありがとう、

4

1 に答える 1

0

あなたができる最善のことは、保存プロセスを分解し、NSErrorを使用して問題が何であるかを理解することです。

    for(NSDictionary *item in json) {
        NSError *error;
        NSData *serializedData = [NSPropertyListSerialization dataWithPropertyList:item format:… options:… error:&error];
        if (!serializedData) { NSLog(@"Can't serialize data: %@", error); continue; }
        if (![serializedData writeToFile:path options:… error:&error]) {
            NSLog(@"Can't write to %@: %@", path, error);
        } else {
            NSLog(@"Success Saving New plist");
        }
    }
于 2012-08-16T18:32:38.967 に答える