2014-08-28 78 views
2

我尝试在Mac上的Objective-C中创建一个NSRange对象。不幸的是,它给了我一个我无法解决或调试的错误消息。创建NSRange时出现Objective-C错误消息

NSRange newRange = [data rangeOfData:dataToFind 
             options:kNilOptions 
             range:NSMakeRange(0u, [newData length])]; 

该错误消息我得到的是:

*** -[NSConcreteData rangeOfData:options:range:]: range {0, 81701012} exceeds data length 347124 

dataToFind的大小是:57854 newData的大小是:81701012

最大。 NSRange长度的大小默认情况下是一个NSUInteger:18446744073709551615

那么错误信息是什么? 347124从哪里来?

回答

1

您正在搜索data尚未提供从零开始搜索的范围newData.length。显然newDatadata长。更改为NSMakeRange(0u, [data length])

1

你引用data但使用的newData长度:

NSRange newRange = [data rangeOfData:dataToFind 
             options:kNilOptions 
             range:NSMakeRange(0u, [newData length])]; 

这看起来不正确的。