2016-05-27 30 views
-2

[ここに画像の説明を入力してください] [1] JSONから3つの値を取得します。 これらの3つの値をNSStringに保存するには、これらの文字列をローカルにつまりデバイスに保存しますか? NSUserDefaultsを試しましたが、できません。コードスニペットを添付しました。JSONレスポンスを文字列に格納し、その文字列をローカルに格納する方法ios objective c

NSData *JSONData = [NSJSONSerialization dataWithJSONObject:responseObject 
                options:0 // Pass 0 if you don't care about the readability of the generated string 
                error:&error]; 

if (! JSONData) 
{ 
    NSLog(@"Got an error: %@", error); 
} else { 
    //_branchId = [responseObject valueForKey:@"branchId"]; 
    _branchName = [responseObject valueForKey:@"branchName"]; 
    _branchUri = [responseObject valueForKey:@"branchUri"]; 
    [[NSUserDefaults standardUserDefaults] setObject:_branchId forKey:[responseObject valueForKey:_branchId]]; 
    [[NSUserDefaults standardUserDefaults] setObject:_branchName forKey:@"branchName"]; 
    [[NSUserDefaults standardUserDefaults] setObject:_branchUriStore forKey:@"_branchUri"]; // Here the setobject value remains nil only 
    [[NSUserDefaults standardUserDefaults] synchronize]; 

PS:私はその共通価値においてもその保存値を使用したいと思います。どのようにそれを行うには?

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"(__fetchBranchUri)/%@",url]]]; 
+0

あなたはjsonを共有できますか?もしあなたがそうすればもっと助けてくれるはずです。 –

+1

あなたの抱える問題は何ですか?何がうまくいかなかったのですか? –

+0

[iOSのNSDictionaryからJSON文字列を生成する]の複製があります(http://stackoverflow.com/questions/6368867/generate-json-string-from-nsdictionary-in-ios) –

答えて

-1

ここではすべきことがあります。

の1-一切のNSData

NSUserDefaults/

ホープあなたのNSDataを2-保存していないあなたのJSONDataを変換し、このことができます!他のブロックで

+0

私はそれをしました。しかし、私は別々の文字列に各値を格納する必要があります。その値はどこでも使用する必要があるからです。 –

0

[[NSUserDefaults standardUserDefaults] setObject:[responseObject valueForKey:@"branchId"] forKey:@"branchId"]; 
[[NSUserDefaults standardUserDefaults] setObject:[responseObject valueForKey:@"branchName"] forKey:@"branchName"]; 
[[NSUserDefaults standardUserDefaults] setObject:[responseObject valueForKey:@"branchUri"] forKey:@"_branchUri"]; 

[[NSUserDefaults standardUserDefaults] synchronize]; 

編集した内容を置き換える:オブジェクト_branchUriStore上記のコードで説明

が定義されていない、とあなたの問題の一部であってもよい(単純なタイプミス?) 。以下では、branchIdの使用に関する別の問題を取り除くためにコードを更新して凝縮しています。そうすれば、あなたがしようとしていることの多くがうまくいきます。

また、@rmaddieはコメントに以下の詳細を追加しました。

+0

KVCが特に必要でない限り、 'valueForKey:'ではなく 'objectForKey:'を使用してください。そして、あなたは 'synchronize'を呼び出す必要はありません。 – rmaddy

+0

そして、いくつかの行を組み合わせる以外は、質問のコードとどのように違うのですか? – rmaddy

+0

見た目のロジックにエラーがあります。次の行に注意してください: – digitalR