iPhone:尝试保存二进制文件

iPhone:尝试保存二进制文件,iphone,Iphone,我有一个数组定义为short FavList[300] 我尝试加载其中的所有1,保存它。 然后在所有0中输出并加载它 在我读入w数据后,它仍然是0.s,并且没有加载所有的数据 代码 -(无效)加载{ //把所有的1都放进去 对于(int i=0;i我使用[data appendBytes:&FavList length:sizeof(FavList)];添加数据。append在末尾添加了数据。它是以FavList的大小创建的,因此begging是全零,数据存储在末尾 当数据被读入时,它是乞讨的,

我有一个数组定义为short FavList[300]

我尝试加载其中的所有1,保存它。 然后在所有0中输出并加载它

在我读入w数据后,它仍然是0.s,并且没有加载所有的数据

代码

-(无效)加载{
//把所有的1都放进去

对于(int i=0;i我使用[data appendBytes:&FavList length:sizeof(FavList)];添加数据。append在末尾添加了数据。它是以FavList的大小创建的,因此begging是全零,数据存储在末尾


当数据被读入时,它是乞讨的,只有零,这是最明显的初步问题:(i)FavList是否确实足够大,可以容纳
数量的图像
;(ii)您是否添加了
NSLog
或任何检查
getBytes:range:
是否已达到的内容?您没有显示如何分配列表或保存。如何让任何人知道发生了什么?
-(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];     

}