2016-09-26 1 views
0

swift 2.0에서는 제대로 작동하는 함수 아래에 작성했습니다. UnicodeScalar 문자열에는 swift 3.0에 값이 없습니다.

private func escape(string: String) -> String { 
     let unicode = string.unicodeScalars 
     var newString = "" 
     for i in unicode.startIndex ..< unicode.endIndex { 
      let char = unicode[i] 
      if char.value < 9 || (char.value > 9 && char.value < 32) // < 32 == special characters in ASCII, 9 == horizontal tab in ASCII 
       || char.value == 39 { // 39 == ' in ASCII 
       let escaped = char.escape(asASCII: true) 
       newString.appendContentsOf(escaped) 
      } else { 
       newString.append(char) 
      } 
     } 
     return newString 
    } 

그러나 엑스 코드 (8) 및 스위프트에 업데이트 후 3.0 내 코드 unicodeScalars가 문자의 유니 코드 값에 액세스 할 속성 .value이 없다는 오류가

. 그렇다면 Swift3.0에서 새로운 속성은 무엇입니까?

답변

2

이와 비슷한 경우 일 수 있습니까?

private func escape(string : String) -> String { 

     var newString = "" 

     string.unicodeScalars.forEach { char in 

      let expression = (char.value > 9 && char.value < 32) 
      (char.value < 9) || expression || (char.value == 39) ? newString.append(char.escaped(asASCII: true)) : newString.append(String(char)) 
     } 

     return newString 
    } 
관련 문제