3

我想检查我的应用程序中文件的最后 2 个字节,以确保它们没有损坏 .jpg

rangeOfData:options:range:看起来是个不错的选择,但我很难弄清楚如何获得合适的NSRange. 我正在寻找的范围是从接近末尾开始NSData,直到结束。

这是我到目前为止所拥有的:

NSData *imageData = [NSData dataWithContentsOfFile:filePath];
NSRange range = {([imageData length]-8),[imageData length]};
NSString *str = @"FFD9";
NSData *jpgTest = [str dataUsingEncoding:NSUTF8StringEncoding];
NSRange found = [imageData rangeOfData:jpgTest options:NSDataSearchBackwards range:range];

这是我得到的错误:

** 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*** -[NSConcreteData rangeOfData:options:range:]: range {14954, 14962} enxceeds data length 14962”

如何正确获取范围以搜索我的最后几个字节NSData

4

1 回答 1

8

的第二个成员NSRange不是范围的终点,而是它的长度。所以在你的情况下应该是:

NSRange range = {([imageData length]-8), 8};
于 2012-06-13T11:22:09.913 回答