Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C按字节比较2个文件_Objective C - Fatal编程技术网

Objective c 目标C按字节比较2个文件

Objective c 目标C按字节比较2个文件,objective-c,Objective C,这段代码应该加载2个文件,并按字节比较它们并输出差异,但出于某种原因,即使使用了相同的文件并且似乎忽略了我的格式,它也会输出差异 任何帮助都将不胜感激 谢谢 int main(int argc, const char * argv[]) { @autoreleasepool { NSString *pathA = [[NSBundle mainBundle] pathForResource:@"original/testfile" ofType:@""]; NSFileH

这段代码应该加载2个文件,并按字节比较它们并输出差异,但出于某种原因,即使使用了相同的文件并且似乎忽略了我的格式,它也会输出差异

任何帮助都将不胜感激

谢谢

int main(int argc, const char * argv[])
{
    @autoreleasepool {
    NSString *pathA = [[NSBundle mainBundle] pathForResource:@"original/testfile" ofType:@""];
    NSFileHandle *fileA = [NSFileHandle fileHandleForReadingAtPath:pathA];
    NSString *pathB = [[NSBundle mainBundle] pathForResource:@"updated/testfile" ofType:@""];
    NSFileHandle *fileB = [NSFileHandle fileHandleForReadingAtPath:pathB];
    unsigned long long sizeofFile = [fileA seekToEndOfFile];
    [fileA seekToFileOffset:0];
    [fileB seekToFileOffset:0];
    unsigned int fileaValue;
    unsigned int filebValue;
    for (int i = 0; i <= sizeofFile; i++) {
        [[fileA readDataOfLength:1] getBytes:&fileaValue];
        [[fileB readDataOfLength:1] getBytes:&filebValue];
        if (fileaValue != filebValue)
            NSLog(@"File A %02x File B %02x at offset %u:",fileaValue,filebValue,i);
    }
    [fileA closeFile];
    [fileB closeFile];
    }
return 0;
}

我认为问题可能在于您选择的数据类型(如果您想要一个字节,则使用
uint8_t
),并且几乎可以肯定您使用
,正如特洛伊木马用户在下面的回答中所指出的,请注意for循环的条件<代码>
 2013-03-13 13:50:50.580 compareFile[12055:303] File A 7fce File B 5fbff9ce at offset 0:
 2013-03-13 13:50:50.581 compareFile[12055:303] File A 7ffa File B 5fbff9fa at offset 1:
uint8_t fileaValue;
uint8_t filebValue;
for (unsigned i = 0; i < sizeofFile; i++) {   // NOT <=
    [[fileA readDataOfLength:1] getBytes:&fileaValue];
    [[fileB readDataOfLength:1] getBytes:&filebValue];
    if (fileaValue != filebValue)
        NSLog(@"File A %02x File B %02x at offset %u:", (unsigned)fileaValue, (unsigned)filebValue,i);
}