私はテストのためにNSDictionaryの内容をNSStringに入れようとしていますが、これを達成する方法がわかりません。出来ますか?もしそうなら、どのようにしてそのようなことをするでしょうか?
これを行う理由は、デバイスでデバッガを実行せずにNSDicitonaryの内容を確認する必要があるからです。 iOSのマルチタスクバーから実行中のアプリを削除する必要があるため、辞書に保存している値が後で使用可能かどうかを確認できます。
[aDictionary description]を呼び出すか、フォーマット文字列が必要な場所であればどこでも、%@を使用して辞書の代わりに使用できます。
[NSString stringWithFormat:@"my dictionary is %@", aDictionary];
または
NSLog(@"My dictionary is %@", aDictionary);
上記のソリューションは辞書を文字列に変換するだけですが、その文字列を辞書に戻すことはできません。そのためにはより良い方法です。
文字列に変換
NSError * err;
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:yourDictionary options:0 error:&err];
NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"%@",myString);
辞書に戻す
NSError * err;
NSData *data =[myString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary * response;
if(data!=nil){
response = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
}
description
からNSDictionary
によって継承されたNSObject
メソッドを使用するか、NSDictionary
を好みに合わせてフォーマットするカスタムメソッドを記述できます。