2013-08-20 29 views
0

基本上我在我的應用程序中有兩個部分一個呼叫汽車和其他每個3個按鈕的呼叫卡車。當點擊一個按鈕時,它會將卡車或汽車的詳細信息保存在nsuserdefault中。基本上,我想打印出來的電子郵件中顯示用戶點擊的汽車和卡車,並以特定格式顯示,例如「Car:Car1,Car 2,Car 3 Truck:Truck1,Truck2 Truck 3」。但是,如果用戶點擊2個汽車按鈕和一個卡車按鈕它看起來像這樣「Car:Car1,Car2,Truck1」有關如何解決此問題的任何提示將不勝感激。iPhone在應用程序電子郵件格式

   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"]]; 

回答

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"] ?: @""]; 

這樣一來,如果你從來沒有設置一個鍵之前,它會被一個空字符串替換。

雖然,我同意0x7fffffff我寧願使用該功能的字典數組。當你需要數據的持久性時,必須使用用戶默認值,我不確定是否是你的情況。

+0

謝謝,這工作正常。不幸的是,我必須保存數據:(另外,我有一個問題,爲什麼這個工作,從來沒有見過這樣的功能。 –

+0

很高興幫助你:)'?:'是[語法糖](https:/ /en.wikipedia.org/wiki/Syntactic_sugar),意味着它將取代更復雜的表達。例如'a?:b'代替if(a!= nil)a;其他b;' –

+0

@TwoFace它被稱爲轉折運算符。 –

0

那麼,我個人認爲你不應該使用NSUserDefaults。你應該研究的是創建一個自定義數據結構來存放所有信息,然後將其存儲到文檔目錄中的plist中。

通過這樣做,您可以製作一個字典數組,其中每個字典包含汽車/卡車的名稱,用於判斷物體是汽車還是卡車的鑰匙,以及用於確定汽車/卡車目前被選中。這樣,當需要格式化電子郵件時,您可以定義一個簡單的循環來統計並列出汽車和卡車。

相關問題