2013-06-22 51 views
1

您建議使用哪種數據庫?我想存儲用戶的電子郵件,用戶名,密碼以及其他一些隨機信息。它不一定是花式的。只需簡單的數據庫。有沒有免費的選擇?爲我的iOS應用程序存儲用戶信息的最佳方式

+0

爲什麼你要存儲密碼?如果是的話,看看使用鑰匙串。 – Wain

+0

好的,但是如果我想存儲用戶創建的內容。例如,如果我要求他們選擇1到10之間的數字,我想永遠記住登錄會話之間的數字。我需要將數字存儲在數據庫中嗎? –

+0

你可以在任何地方存儲。你的問題是關於應該安全的用戶信息。請給我一個例子 – Wain

回答

3

用戶信息需要存儲在鑰匙串中以保證其安全。

任何其他信息可以存儲在任何一個:

  1. 用戶默認NSUserDefaults磁盤
  2. 文件(可能是plist中)
  3. 數據庫Core Data(技術上只是一個磁盤文件)

你選擇哪一個取決於數據是什麼,有多少和你需要什麼樣的訪問。

如果您的數據很小並且由用戶選擇某種設置,那麼用戶默認值是有意義的,並且是您實現的最低成本。

要使用數據庫,請檢查Core Data intro

+0

非常感謝,很好的回答。儘管我認爲我需要一個數據庫,因爲我希望其他用戶能夠看到彼此的信息。我應該在我的問題上做得更清楚。 –

3

將其存儲在plist中。如果您正在討論關於一個或幾個用戶的數據,那可能很容易。 here就是一個簡單的例子。

+0

感謝您的回答。我想我實際上需要一個數據庫,這樣用戶可以看到關於對方問題答案的某些信息。有關ios dev的最佳文檔和支持數據庫的建議? –

2

既然你說數據庫,存儲在Sqlite。有一些已經在xcode中提供了它的東西。

整個數據庫包含在一個文件中,如果需要的話可以移動。

以下是關於如何在您的應用中使用一個的更多信息information

+0

謝謝你,這是我正在尋找的答案類型。我的問題應該更清楚。我真的很想知道是否有像這樣的數據庫中存儲用戶信息的通用或良好支持/記錄方式。 –

3

Wain是對的,但我認爲你想存儲少量數據以備後用,最有效的方法是使用NSUserDefault

NSUserDefault存儲數據在NSDictionary類型的東西。

我覺得這是你必須採取下列步驟:

1-檢查是否存在的數據。我的意思是如果用戶選擇了最後一次運行你的應用程序的號碼。因此,在viewDidLoad方法:

NSMutableDictionary *userDefaultDataDictionary = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:ALL_DATA_KEY] mutableCopy]; 

if (userDefaultDataDictionary) { 
    // so the dictionary exists, which means user has entered the number in previous app run 
    // and you can read it from the NSDictionaty: 
    if(userDefaultDataDictionary[LABLE_KEY]){ 
     //and store it 
    } 
} 

2 - 你可以實現諸如syncronize一些方法將數據每隔事情已經改變了時間存儲在NSUserDefault

- (void) synchronize 
{ 
    NSMutableDictionary *dictionaryForUserDefault = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:ALL_DATA_KEY] mutableCopy]; 
    if(!dictionaryForUserDefault) 
     dictionaryForUserDefault = [[NSMutableDictionary alloc] init]; 
    dictionaryForUserDefault[LABLE_KEY] = //data you want to store 

    [[NSUserDefaults standardUserDefaults] setObject:dictionaryForUserDefault forKey:ALL_DATA_KEY]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

P.S.並且不要忘記#define您的密碼爲您的字典:

#define LABLE_KEY @"Lables" 
#define ALL_DATA_KEY @"AllData" 
+0

謝謝。但是如果我希望用戶能夠看到彼此的信息,我不需要數據庫。就像用戶a想知道用戶b爲某些東西放置什麼東西,那必須存儲在數據庫中一樣? –

+0

不客氣。我完全沒有在這裏提出你的問題。用戶A和B使用相同的設備還是不同的設備?我的意思是如果你想將數據存儲在一個設備中,只能使用一個設備,可以使用NSUserDefault。或者,例如,如果你想讓用戶通過互聯網或類似的東西進行交互?你能提供更多關於你的問題的信息嗎? – alternatiph

+0

用戶a和b位於不同的設備上。 –

相關問題