2014-08-28 26 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])]; 

這看起來不正確的。