2012-04-04 4 views
1

NSMutableDataに階層システムはありますか?もしそうなら、どのように情報を階層的にロードするのですか? 例NSMutableDataの階層をロードする

(gameData内にNSArray *ファースト・データ)のためにあるしかし
//Create path to saving location 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSMutableData *gameData; 
NSKeyedUnarchiver *decoder; 
NSString *documentPath = [documentsDirectory stringByAppendingPathComponent:@"tierSave.dat"]; 
gameData = [NSData dataWithContentsOfFile:documentPath]; 
//end 

//start loading 
    for(NSArray* firstData in gameData){ 

    decoder = [[NSKeyedUnarchiver alloc] initForReadingWithData:gameData]; 

    int level1 = [decoder decodeIntegerForKey:level1]; 
    } 
//end 

は、コンパイラは代わりなどNSMutableArrayののNSMutableDataあるのでgameDataをカウントするために応答しないことを私に伝え、私は正確にコードを再実装するにはどうすればよいです上記?

答えて

1

省:

  • あなたにNSArrayからのNSDataを作るためにあなたの複数のNSData
  • 使用NSKeyedArchiverでNSArrayの作成

ロード:

  • ロードファイルからのNSData
  • NSKeyedUnarchiverを使用して抽出するNSArrayの
  • ループあなたにNSArray
  • コードで

: たNSData * DATA0 = [NSDataのデータ]; //データ1 NSData * data1 = [NSDataデータ]。 //データ2

/////////// SAVE 
// now make a array 
NSArray *array = [NSArray arrayWithObjects:data0, data1, nil]; 

// now archive the data 
NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:array]; 
// archivedData contains now a binary plist with your archived array including your NSData objects 

[archivedData writeToFile:path atomically:YES]; 



/////// LOAD 
NSData *archivedDataFromFile = [NSData dataWithContentsOfFile:path]; 

NSArray *newArray = [NSKeyedUnarchiver unarchiveObjectWithData:archivedDataFromFile]; 

NSData *dataLoaded0 = [newArray objectAtIndex:0]; 
+0

もう少し具体的になりますか?私はこれには全く新しいです。ありがとう – Bek

+0

このような良い? –

+0

それは簡単ではっきりしている、私はそれを試してみるつもりです。御時間ありがとうございます!良い一日を過ごしてください – Bek