문자열에서 부분 문자열 일치를 찾고 일치하는 위치를 찾으려고했습니다.Swift distance() 메서드가 치명적인 오류를 throw합니다. endIndex를 증가시킬 수 없습니다.
다음 코드 뭐가 잘못 알아낼 수 없습니다 : 제안 된 의견으로
let str1 = "hello#゚Д゚"
let cmp = "゚Д゚"
let searchRange = Range(start: str1.startIndex, end: str1.endIndex)
let range = str1.rangeOfString(cmp, options: .allZeros, range: searchRange)
println("\(searchRange), \(range!)") // output: 0..<9, 6..<9
let dis = distance(searchRange.startIndex, range!.startIndex) // fatal error: can not increment endIndex! reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
// let dis = distance(searchRange.startIndex, range!.endIndex) // This will go and output: distance=7
println("distance=\(dis)")
을의 range
가 유효한 값을 가지고 있지만, 거리() 메소드는 치명적인 오류가 발생했습니다.
distance()를 잘못 사용하면 대상을 보관하는 데 어떤 방법을 사용해야합니까? 조언이 도움이 될 것입니다. 감사. 여기
작동하려면 '거리'에 동일한 컨테이너의 시작 및 끝 범위가 필요합니다. 찾기 기능이 필요하지만 Swift는 원하는 것을 할 수있는 라이브러리가 없습니다. –
무엇을하려고합니까? 하위 문자열의 범위를 얻으시겠습니까? – kap