NSData dataWithContentsOfFile在设备上返回不同的结果

时间:2015-06-10 23:44:21

标签: ios iphone hash md5 nsdata

我在PNG图像上使用dataWithContentsOfFile,iOS模拟器返回的值与iOS设备不同。我的设备是64位iPad Air(iOS 8.3),我的模拟器设置为iPad Retina iOS 8.3。这是我使用的代码:

    NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
    NSData *data = [NSData dataWithContentsOfFile:sourcePath];
    NSString *hash = [self md5Hash:data]

    // Results on device: 2D25F346396FB00BEB27754ED1B56310
    // Results on simulator: 55016FD1AB3DA0F882FEA85D5ABCA2ED

我用字符串测试了我的哈希函数,无论设备如何,它都能正常工作。我不会显示dataWithContentsOfFile方法的结果,但我可以向您保证它们不同。

更新:测试dataWithContentsOfURL正常,例如:

    NSURL *fileURL = [NSURL URLWithString:@"https://www.google.com/images/srpr/logo11w.png"];
    NSData *data = [NSData dataWithContentsOfURL:fileURL];
    NSString *hash = [self md5Hash:data]

    // Results on device: 57E396BAEDFE1A034590339082B9ABCE
    // Results on simulator: 57E396BAEDFE1A034590339082B9ABCE

1 个答案:

答案 0 :(得分:1)

我猜它是Xcode将PNGCrush应用到你的图片......所以它实际上不是同一个文件。