source

경고: 'contexters'는 더 이상 사용되지 않습니다.문자열 또는 하위 문자열을 직접 사용하십시오.

nicesource 2023. 6. 28. 21:49
반응형

경고: 'contexters'는 더 이상 사용되지 않습니다.문자열 또는 하위 문자열을 직접 사용하십시오.

문자 - 문자열의 인스턴스 속성으로, Xcode 9.1에서는 더 이상 사용되지 않습니다.

사용하여 String에서 서브스트링을 얻는 것은 매우 유용했습니다.characters속성이지만 지금은 더 이상 사용되지 않으며 Xcode에서 사용을 제안합니다.substringSO 관련 질문과 애플 개발자 튜토리얼/가이드라인을 확인해 보았습니다.그러나 제안된 솔루션/대체 솔루션을 볼 수 없습니다.

다음은 경고 메시지입니다.

'computers'는 더 이상 사용되지 않습니다.문자열 또는 하위 문자열을 사용하십시오.

enter image description here

속성을 사용하여 수행/처리되는 문자열 작업이 너무 많습니다.characters.

이 업데이트에 대한 아이디어나 정보를 알고 있는 사람?

Swift 4는 문자열 API의 변경 사항을 도입했습니다.
그냥 사용할 수 있습니다.!stringValue.isEmpty대신에stringValue.characters.count > 0

자세한 정보는 여기서 샘플을 받으십시오.

예를 들어

let edit = "Summary"
edit.count   // 7

Swift 4 대 Swift 3의 예:

let myString = "test"

for char in myString.characters {print(char) } // Swift 3
for char in myString { print(char) } // Swift 4

let length = myString.characters.count // Swift 3
let length = myString.count // Swift 4

문자열을 조작하는 가장 일반적인 경우 중 하나는 JSON 응답입니다.이 예에서 나는 Bitcoin JSON 객체의 마지막(n) 문자를 삭제하기 위해 시계 앱에 확장을 만들었습니다.

스위프트 3:

func dropLast(_ n: Int = 0) -> String {
    return String(characters.dropLast(n))

Xcode 9.1 오류 메시지:

'computers'는 더 이상 사용되지 않습니다.문자열 또는 하위 문자열을 직접 사용하십시오.

Xcode에서 문자열 변수나 메소드를 직접 사용하라고 합니다.

스위프트 4:

func dropLast(_ n: Int = 0) -> String {
    return String(dropLast(n))
    }

전체 확장:

extension String {
    func dropLast(_ n: Int = 0) -> String {
        return String(dropLast(n))
    }

    var dropLast: String {
        return dropLast()
    }
}

통화:

print("rate:\(response.USDRate)")
let literalMarketPrice = response.USDRate.dropLast(2)
print("literal market price: \(literalMarketPrice)")

콘솔:

//rate:7,101.0888 //JSON float
//literal market price: 7,101.08 // JSON string literal

추가 예:

  • print("Spell has \(invisibleSpellName.count) characters.")
  • return String(dropLast(n))
  • return String(removeLast(n))

설명서:

다음과 같은 일반적인 방법을 사용하는 경우가 많습니다.dropLast()또는removeLast()또는count각 방법에 대한 명시적인 Apple 설명서는 다음과 같습니다.

지난 시간에 방울방울

마지막으로 제거하다 »

숫자를 세는 문자

사용characters왜냐면StringSwift 2.0에서 컬렉션이 중단되었습니다.그러나 이것은 Swift 4에서 여전히 유효한 코드이지만 지금은 더 이상 필요하지 않습니다.String이다.Collection다시.

예를 들어 Swift 4String이제 문자 카운트를 제공하는 직접 카운트 속성이 있습니다.

// Swift 4
let spString = "Stack"
spString.count           // 5

String 및 SubString의 예입니다.

스위프트 4String이제 String의 첫 번째 문자를 제공하는 Element를 직접 가져옵니다.

let spString = "Stack"
let firstElement = spString.first   //S

하위 문자열

SubString을 사용하여 첫 번째 문자를 가져옵니다.

let spstring = "Welcome"
let indexStartOfText = spstring.index(spstring.startIndex, offsetBy: 1)
let sub = spstring.substring(to: indexStartOfText)
print(sub) //W

그 경고는 빙산의 일각일 뿐이고, 문자열 변경의 전리품이 있었고, 문자열은 다시 문자 모음이지만, 우리는 새롭고 멋진 것을 얻었습니다, 하위 문자열:)

에 대한 훌륭한 읽을거리입니다. https://useyourloaf.com/blog/updating-strings-for-swift-4/

문자만 제거합니다. 예:

stringValue.characters.count to stringValue.count

또한 {$0.characters.first!}을(를) 사용하지 않고 사전 그룹화에 이 코드를 사용할 수 있습니다.

let cities = ["Shanghai": 24_256_800, "Karachi": 23_500_000, "Beijing": 21_516_000, "Seoul": 9_995_000]
let groupedCities = Dictionary(grouping: cities.keys) { $0.first! }
print(groupedCities)
func validatePhoneNumber(number:String) -> Bool{
    if number.count < 10. //deprecated ->(number.characters.count)
    {
        return false;
    }else{
        return true;
    }
}

.count를 직접 사용하면 문자가 사용되지 않습니다.

언급URL : https://stackoverflow.com/questions/46467284/warning-characters-is-deprecated-please-use-string-or-substring-directly

반응형