0

基本的に、アプリには 2 つのセクションがあり、1 つは車を呼び出し、もう 1 つはトラックを呼び出し、それぞれに 3 つのボタンがあります。1 つのボタンをクリックすると、トラックまたは車の詳細が nsuserdefault に保存されます。基本的に、ユーザーがクリックした車とトラックを示す電子メールで印刷し、「車: 車 1、車 2、車 3 トラック: トラック 1、トラック 2 トラック 3」などの特定の形式で表示したいと考えています。ただし、ユーザーが 2 つの車のボタンと 1 つのトラックのボタンをクリックすると、"Car:Car1,Car2,Truck1" のようになります。これを回避する方法についてのヒントをいただければ幸いです。

              NSString *emailBody=[NSString                            
             stringWithFormat:@"Car:%@,%@,%@,Truck:%@,%@,%@",[[NSUserDefaults        
             standardUserDefaults]stringForKey:@"Car1"],[[NSUserDefaults 
             standardUserDefaults]stringForKey:@"Car2"],[[NSUserDefaults 
             standardUserDefaults]stringForKey:@"Car3"],[[NSUserDefaults 
             standardUserDefaults]stringForKey:@"Truck1"],[[NSUserDefaults 
             standardUserDefaults]stringForKey:@"Truck2"],
             [[NSUserDefaults standardUserDefaults]stringForKey:@"Truck3"]];
4

2 に答える 2

0

個人的には、これに NSUserDefaults を使用するべきではないと思います。検討すべきことは、すべての情報を格納する 1 つのカスタム データ構造を作成し、それをドキュメント ディレクトリの plist に格納することです。

このようにすることで、辞書の配列を作成できます。各辞書には、車/トラックの名前、オブジェクトが車かトラックかを示すキー、および車/トラックが現在選択されています。このようにして、電子メールをフォーマットするときが来たら、単純なループを定義して、車とトラックを数え上げてリストすることができます。

于 2013-08-20T02:02:19.053 に答える
0

次のようなことを試してください:

NSString *emailBody=[NSString stringWithFormat:@"Car:%@,%@,%@,Truck:%@,%@,%@",
[[NSUserDefaults standardUserDefaults]stringForKey:@"Car1"] ?: @"",
[[NSUserDefaults standardUserDefaults]stringForKey:@"Car2"] ?: @"",
[[NSUserDefaults standardUserDefaults]stringForKey:@"Car3"] ?: @"",
[[NSUserDefaults standardUserDefaults]stringForKey:@"Truck1"] ?: @"",
[[NSUserDefaults standardUserDefaults]stringForKey:@"Truck2"] ?: @"",
[[NSUserDefaults standardUserDefaults]stringForKey:@"Truck3"] ?: @""];

このように、以前にキーのいずれかを設定したことがない場合は、空の文字列に置き換えられます。

ただし、 0x7ffffffffには同意しますが、その機能には辞書の配列を使用したいと思います。データの永続性が必要な場合は、ユーザーデフォルトを使用する必要があります。それがあなたの場合かどうかはわかりません。

于 2013-08-20T02:06:02.113 に答える