나는이 두 NSData
객체 NSData는 다른 NSData의 하위 문자열입니까?
NSData *toScan = /* initialized somehow with "Hello, this world." */;
NSData *toMatch = /* initialized somehow with "this" */;
toMatch
바이트 toScan
바이트의 하위 집합 알 수있는 가장 좋은 방법은 무엇입니까
나는이 두 NSData
객체 NSData는 다른 NSData의 하위 문자열입니까?
NSData *toScan = /* initialized somehow with "Hello, this world." */;
NSData *toMatch = /* initialized somehow with "this" */;
toMatch
바이트 toScan
바이트의 하위 집합 알 수있는 가장 좋은 방법은 무엇입니까
Snow Leopard 및 iOS 4.0에서 NSData는 원하는 작업을 수행하는 -rangeOfData:options:range:
입니다.
또한 꽤 빠르다.
에서 ...이
strstr([[toScan identifier] bytes], [[toMatch identifier] bytes]);
// returned bytes are null-terminated
뭔가를하지만 객체 지향 환경에서 C-기능을 사용하는 가장 좋은 방법이 아니라고 생각 : 나는이 시점에서이 목적을 위해 C-기능을 사용
Elegant Algorithm for Parsing Data Stream Into Record
그건 당신이 찾고있는 무엇을 할 것입니다 : 다른 질문은, 내가 rangeOfData:
방법이있는 NSData
범주를 포함하는 대답을 썼다.
문자열 toMatch가 toScan에서 발견 된 경우에만 strstr이 작동합니다. 하지만 toMatch가 "cdb"인 경우에는 어떻게해야합니까? 여전히 하위 집합이지만 strstr은이를 인식하지 못합니다. 아니면 그렇게되지 않을까요? 또한 공간 효율은 계산 효율보다 중요합니까? 바이트는 항상 사전 순으로 있습니까? –
내 질문을 편집했습니다. –