2010-12-28 20 views
-1

長い配列をNSUserDefaultsに格納して取得するにはどうすればよいですか?ここで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

それを取得したい - ではない通常のC-配列

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

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

Retrieve:

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

をし、どのようにそれを取得するために:しかし、NSArraysだけストアオブジェクトので、あなたはNSNumberオブジェクトにカプセル化long値を保存する必要がありますか? –

関連する問題