2013-06-22 2 views
1

어떤 종류의 데이터베이스를 제안합니까? 사용자 이메일, 사용자 이름, 비밀번호 및 몇 가지 다른 임의의 정보를 저장하고 싶습니다. 그것은 화려 할 필요가 없습니다. 단순한 데이터베이스. 무료 옵션이 있습니까?내 iOS 앱에 대한 사용자 정보를 저장하는 가장 좋은 방법

+0

왜 비밀번호를 저장하고 있습니까? 그렇다면 키 체인을 사용하십시오. – Wain

+0

괜찮 았지만 사용자가 만든 콘텐츠를 저장하고 싶습니다. 예를 들어 내가 1에서 10 사이의 번호를 선택하도록 요청하면 로그인 세션 사이에 그 번호를 항상 기억하고 싶습니다. 번호를 데이터베이스에 저장해야합니까? –

+0

어디서나 저장할 수 있습니다.귀하의 질문은 안전해야하는 사용자 정보에 관한 것입니다. – Wain

답변

3

사용자 정보를 안전하게 유지하려면 키 체인에 사용자 정보를 저장해야합니다.

  1. 사용자 기본값 NSUserDefaults 디스크에
  2. 파일 (어쩌면 PLIST)
  3. 데이터베이스 Core Data (디스크에 기술적으로 단지 파일)
  4. :

    다른 정보 중 어느 하나에 저장 될 수

어느 데이터를 선택하는지, 데이터의 양 및 필요한 액세스 유형에 따라 다릅니다.

데이터가 작고 사용자가 일종의 설정으로 선택한 경우 사용자 기본값이 적합하며 구현하기에 가장 적은 비용입니다.

데이터베이스를 사용하려면 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 - 당신은 NSUserDefault 뭔가가 변경되었습니다 때마다 데이터를 저장하는 syncronize 같은 몇 가지 방법을 구현할 수 있습니다.

- (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. 사전에 대한 귀하의 키 #define을 잊지 마세요 :

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

감사합니다. 사용자가 서로의 정보를 볼 수있게하려면 데이터베이스가 필요하지 않습니다. 사용자 a가 어떤 사용자 B가 무엇을 넣었는지 알고 싶다면 데이터베이스에 저장해야합니다. –

+0

반갑습니다. 나는 여기서 당신의 질문을 완전히 얻지 못했습니다. 사용자 A와 B는 동일한 장치 또는 다른 장치를 사용합니까? 데이터를 하나의 장치에 저장하려는 경우 'NSUserDefault'를 사용할 수 있습니다. 또는 예를 들어 사용자가 인터넷이나 그와 비슷한 방식으로 상호 작용하게하려면? 질문에 대한 더 많은 정보를 제공해 줄 수 있습니까? – alternatiph

+0

사용자 a와 b는 서로 다른 장치에 있습니다. –

관련 문제