2014-08-28 3 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에서 찾고 있는데, 길이가 0에서 시작하여 검색 범위를 제공한다. newData.length. 외관상으로는 newDatadata보다 길다. NSMakeRange(0u, [data length])으로 변경하십시오.

1

당신은 data를 참조하지만 newData의 길이를 사용하고 있습니다 :

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

제대로 보이지 않습니다 그.