0

NSMutableArrayToを保存するのは初めてNSUerdefaultsです。

これがiVarの宣言です:.hファイル

@interface GameData : NSObject {

NSMutableArray *PPLayers;

}

@property (nonatomic,retain) NSMutableArray *PPLayers;

.mファイル

@synthesize PPLayers;

これが、オブジェクトを配列に追加してデフォルトに保存する方法です。

-(void)AddObject:(NSString *) object ToArray:(NSMutableArray*)array{
if (array == PShoes) {
    [PShoes addObject:object];
    NSLog(@"Object : %@",object);
    [[NSUserDefaults standardUserDefaults]setValue:PPLayers forKey:@"pplayers"];
    [[NSUserDefaults standardUserDefaults]synchronize];
    NSLog(@"%@",PPLayers);
}

動作する場合もあれば、アプリがクラッシュする場合もあります。

これが私が配列をロードしようとしている方法です:

    PPLayers = [[NSUserDefaults standardUserDefaults]mutableArrayValueForKey:@"pplayers"];

ここで何かがおかしいのですが、私には何がわかりません。時々私がそれをロードするときそれは私に与えますnull。アプリは、シミュレーターから実行した場合にのみ保存します。私はいくつかの助けを得たいですplz。ありがとう!

4

1 に答える 1

0

これを試して

         [[NSUserDefaults standardUserDefaults]setValue:PPLayers forKey:@"pplayers"];

         NSArray *NewPPLayers =[[NSArray alloc]initwithArray:[[NSUserDefaults standardUserDefaults]mutableArrayValueForKey:@"pplayers"]];
于 2012-04-17T17:00:15.010 に答える