2

私は現在、サーバーに接続してJSONデータをダウンロードするための小さくて特定のiPhoneアプリに取り組んでいます。私の問題は、いくつかのデータ (サーバーのログイン、パスワード、およびドメイン) を保存するために使用するプロパティ リストに関するものです。Xcodeでplistを簡単に作成しましたが、ユーザーが入力したテキストで編集しようとすると、問題が発生し、修正方法がわかりません...

これはtextFieldDidEndEditing: method、ユーザーが domainTextField に書き込んだ内容を使用して、plist に書き込もうとする です。

- (void)textFieldDidEndEditing:(UITextField *)textField
{

    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *filepath = [NSString stringWithFormat:@"%@/userInfo.plist", [paths objectAtIndex:0]];
    NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] initWithContentsOfFile:filepath];

    if (self.domainTextField) {
        NSString *domain = [NSString stringWithFormat:@"%@", self.domainTextField.text];
        [userInfo setValue:domain forKey:@"domain"];
    }

    if ([userInfo writeToFile:filepath atomically:TRUE]) {
        NSLog(@"write succeeded");
    } else {
        NSLog(@"write failed");
    }
}

ここで常に「書き込みに失敗しました」というエラーが表示されます。デバッガーで少し遊んだ後、問題はsetValue:forKey: method. 実際、私はこのメソッドが plist にそれを書き込むことを期待しています :は NSStringdomain = "whateverthedomainis"ですdomainが、代わりに : を書き込みますdomain = whateverthedomainis。writeToFile:atomically: メソッドは、すべてのオブジェクトがプロパティ リスト オブジェクトであることを確認するため、NO を返します。バックスラッシュを入れようとしましたが、役に立ちませんでした。

このエラーを解決するにはどうすればよいですか?

4

1 に答える 1

0

StringWithFormatは、文字列に引数がある場合に使用するため、次のように文字列値を直接割り当てることができます。

NSString *domain = self.domainTextField.text;
于 2012-11-07T21:46:17.663 に答える