2011-10-27 4 views
0

안녕하세요. 일부 아이디어가 있습니다.IPhone의 NSUserDefault에 값 저장 및 검색

나는 사용하고있다 NSUserDefault 저장 코드에 대한 저장 및 검색 값은 다음과 같습니다.

dataDict_=[[NSMutableDictionary alloc]init]; 
    [dataDict_ setObject:[nameText_ text] forKey:@"Name"]; 
    [dataDict_ setObject:[linkText_ text] forKey:@"Link"]; 
    NSUserDefaults *userDefault=[NSUserDefaults standardUserDefaults]; 
    [userDefault setObject:dataDict_ forKey:@"Dict"]; 
    [[NSUserDefaults standardUserDefaults]synchronize]; 
    [dataDict_ release]; 

그리고 코드를 가져 오는 중 오류에 대한

이제 문제는 내가 저장하고 난 내 새 그 시간에 다시 한번 저장하면 한 번에 데이터를 가져 오지 수 있어요이 코드의 도움을받는 것이다

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
    NSMutableDictionary *favourites = [[standardUserDefaults objectForKey:@"Dict"] mutableCopy]; 

입니다 값이 마지막 값과 겹치고 있습니다.

다른 페이지의 값을 NSUserDefault에 저장하고 다른 페이지에서 다시 검색하여 배열에 추가하고 표에 표시해야합니다.

NSUserDefault에 10 개의 이름을 하나 추가하고 userdefault에서 검색하여 표시하고 싶습니다.

그러나이 코드의 도움으로 새로운 데이터 만 검색하면 마지막 데이터가 새 데이터에 중첩됩니다.

해결 방법을 알려주십시오.

NSLog(@"The dict value is %@",favourites); 
+0

다른 기본값을 사용자 기본값으로 저장하려면 '[userDefault setObjct : dataDict_ forKey : @ "Dict"]'다른 키를 사용해야합니다. – Denis

답변

1

대신에 하나 개의 값을 저장하는 배열 저장 : 지금

// Create a data dictionary for this name & link 
dataDict_=[[NSMutableDictionary alloc]init]; 
[dataDict_ setObject:[nameText_ text] forKey:@"Name"]; 
[dataDict_ setObject:[linkText_ text] forKey:@"Link"]; 

// Get the current array from user defaults 
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 
NSMutableArray *favourites = [[userDefault objectForKey:@"favourites"] mutableCopy]; 
if (nil == favourites) favourites = [[NSMutableArray alloc] init]; 

// Add the new details to it 
[favourites addObject:dataDict]; 

// Store the array in the user defaults 
[userDefault setObject:favourites forKey:@"favourites"]; 
[userDefault synchronize]; 

// Release 
[favourites release]; 
[dataDict release]; 

을 사용자 기본값에서 다시 모든 세부 사항을 얻기 위해, 대신 세부

한 세트의 배열을 얻을
NSArray *favourites = [[NSUserDefaults standardUserDefaults] objectForKey:@"favourites"]; 
관련 문제