2010-12-28 2 views
-1

NSUserDefaults에 긴 배열을 저장하고 검색하려면 어떻게해야합니까? - 일반하지 C-배열NSUserDefaults에서 긴 배열 저장 및 검색

long *arr; 
arr = new long [10]; 
for(int i = 0 ; i<10 ; i++) 
{ 
arr[i] = i; 
} 

가 지금은 NSUserDefaults에이 arr를 저장 한 후 NSArray을 사용하여 나중에

답변

7

개체는 NSUserDefaults에만 저장할 수 있습니다. 따라서 배열을 NSArray으로 변환해야합니다.

//saving 
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; 
NSMutableArray *arrayObj = [[NSMutableArray alloc] init]; 

long *arr; 
arr = new long [10]; 

for(int i = 0 ; i<10 ; i++) { 
    [arrayObj addObject:[NSNumber numberWithLong:arr[i]]]; 
} 

[standardDefaults setObject:arrayObj forKey:@"longArray"]; 
[arrayObj release]; 


//reading 
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; 
NSArray *arrayObj = [standardDefaults objectForKey:@"longArray"]; 

long *arr; 
arr = new long [10]; 

for(int i = 0 ; i<10 ; i++) { 
    arr[i] = [(NSNumber*)[arrayObj objectAtIndex:i] longValue]; 
} 
2

를 검색하려고 : 여기

내 긴 배열 모습입니다

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

[standardUserDefaults setObject:myNSArray forKey:@"Prefs"]; 

검색 :

NSArray *array = [standardUserDefaults objectForKey:@"Prefs"]; 
+0

을 어떻게를 검색 할 수 그러나, NSArrays 또한 단지 저장소 개체, 그래서 당신은 NSNumber 객체로 캡슐화 된 long 값을 저장해야합니까? –