2010-12-28 5 views
-1

Как сохранить длинный массив в NSUserDefaults и получить его?Хранение и извлечение длинного массива из NSUserDefaults

Вот как мой длинный массив выглядит:

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

Теперь я хочу, чтобы сохранить этот arr в NSUserDefaults, а затем получить его позже

ответ

7

Вы можете хранить объекты только в NSUserDefaults. Поэтому вам нужно преобразовать массив в NSArray. Тем не менее, NSArrays также хранить только объекты, так что вам нужно хранить long значения инкапсулированные в NSNumber объекта:

//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

С помощью NSArray - не простой кесарево массив

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

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

Извлечение:

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

и как получить его? –

Смежные вопросы