テストのために NSDictionary の内容を NSString に入れようとしていますが、これを達成する方法がわかりません。出来ますか?もしそうなら、どうやってそのようなことをするでしょうか?
私がこれを行っている理由は、デバイスでデバッガーを実行せずに NSDicitonary の内容を確認する必要があるためです。実行中のアプリをiosのマルチタスクバーから削除する必要があるため、辞書に保存している値が後で使用できるかどうかを確認できます。
テストのために 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];
}
fromdescription
によって継承されたメソッドを使用するか、好みに合わせてフォーマットするカスタム メソッドを作成できます。NSDictionary
NSObject
NSDictionary
あなたが使用したい場合URLRequest httpBody
extension Dictionary {
func toString() -> String? {
return (self.compactMap({ (key, value) -> String in
return "\(key)=\(value)"
}) as Array).joined(separator: "&")
}
}
// 印刷: Fields=sdad&ServiceId=1222