0

私は短い FavList[300]; として定義された配列を持っています。

その中のすべての 1 をロードして保存しようとします。次に、すべて 0 にしてロードします。

データを読み込んだ後も、すべて 0.s のままで、すべて 1 がロードされませんでした。

コード

-(void)Load{

    // put in all 1's
    for(int i=0; i<AMOUNT_OF_IMAGES; i++)
        FavList[i]=1;  

    // save it
    [self Save];

    // put in all 0's
    for(int i=0; i<AMOUNT_OF_IMAGES; i++)
        FavList[i]=0; 

    // load it
    NSString *path = [NSString stringWithFormat:@"%@/test3.bin", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
    NSData *read = [NSData dataWithContentsOfFile:path];
    if (read==nil)
    {
        // it has not been save whete, set up a empty favret
        for(int i=0; i<AMOUNT_OF_IMAGES; i++)
            FavList[i]=0;     
    }
    else
    {
    // transfer to our arrow
     NSRange test = {0,sizeof(FavList)};
    [read getBytes:&FavList range:test];

    // what happen, the data is still 0, not 1?????????
   }

} 


-(void)Save{
    // get file name
    NSString *path = [NSString stringWithFormat:@"%@/test3.bin", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];

    NSMutableData *data = [NSMutableData dataWithLength:sizeof(FavList)];
    [data appendBytes:&FavList length:sizeof(FavList)];
    [data writeToFile:path atomically:YES];     

}
4

1 に答える 1

0

[data appendBytes:&FavList length:sizeof(FavList)]; を使用します。データを追加します。アペンドは最後にデータを追加しました。これは FavList のサイズで作成されたため、物乞いはすべてゼロで、最後にデータが格納されました。

データが読み込まれたとき、それは物乞いでゼロだけでした

于 2012-11-17T18:14:12.453 に答える