2013-05-08 78 views
19

我在應用程序的設置包中定義了多值設置(位置)。
標題定義爲長標題,例如「倫敦」,設置的相應值部分定義爲「1」。如何使用設置包中的多值標題和值

[編輯]

要擴大這個問題,我會添加有關多值設置的詳細信息:

this is a screenshot of the multi value setting

如何取回倫敦的標題在項目0。上面描述當我檢索objectForKey或valueForKey我總是1。我想在標籤中的標題中顯示字符串「LONDON」,但在覈心數據中使用值1。注意:在應用程序運行之前,我已經在設置中設置了值,所以它返回一個值,但值始終爲1,因爲標題似乎無法訪問。

+0

我知道如何獲得設置。我想知道如何顯示與上面示例中的值不同的標題。當我使用上面的示例objectForKey時:@「locSetting」返回LDN。當我使用valueForKey:@「locSetting」時,我也返回了LDN。但是我的settings.bundle中的標題在我的多值設置中設置爲「倫敦」。 – motionpotion 2013-05-08 22:39:16

+0

@ H2CO3谷歌並沒有倒閉。你的回答不能回答我的具體情況。但謝謝你的迴應。 – motionpotion 2013-05-09 12:23:35

+0

默認值不是索引位置,但值 – jomafer 2017-04-07 14:34:22

回答

7

您應該將您的「默認值」值設置爲「1」 - 只需從您的「值」列表中的項目0。

+0

感謝它爲我工作! – 2014-01-27 12:54:14

+0

我已經設置了「默認值」。我試圖顯示文本值並將該文本值的值放入核心數據中。標題=「倫敦」似乎無法訪問。 – motionpotion 2014-10-15 20:22:03

+0

這個答案是沒有關係到這個問題。 – Tamil 2017-03-29 12:57:05

3

位置設置爲一個多值,是一個NSDictionary。因此,請執行以下操作:

NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"]; 

NSString *value = (NSString *)location; 

將位置值作爲NSString進行投射,因爲您知道要返回字符串。

然後,您可以將結果作爲字符串處理。返回的「value」變量是值段中寫入的任何內容。在你的情況下,如果你選擇「倫敦」,你會得到一個字符串形式的值「1」。

0

如果我對您的問題的理解是正確的,那麼您在詢問如何獲取用戶所選值的位置字典的密鑰條目。

對於字典,沒有這樣的一次性使用方法。 但有一種方法來實現通過如下操作allKeys相同的結果:

NSDictionary *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"locationSettings"]; 
NSArray *keys = [location allKeys]; 
NSString *locationIdentifier = [keys objectForIndex:[location valueForKey:@"LONDON"]]; 

這將導致在"LONDON"串被存儲在locationIdentifier變量。 因此,最後一行字符串的賦值可能會改爲簡單地使用objectForIndex:0,但這不是我之前嘗試過的,所以我不確定。

3

我遇到了類似的情況,並回答了它會幫助別人的問題。

如果我正確理解問題,當用戶從設置中選擇倫敦時,默認值將爲1.當您閱讀位置設置的設置包時,您會得到值1而不是倫敦,但您希望「倫敦」在你的代碼而不是1.你的plist的當前結構是不可能的。使默認值爲字典而不是字符串,然後可以在該字典中包含標題和值。然後您可以檢索所選值的文本。

相關問題