경고: 'contexters'는 더 이상 사용되지 않습니다.문자열 또는 하위 문자열을 직접 사용하십시오.
문자 - 문자열의 인스턴스 속성으로, Xcode 9.1에서는 더 이상 사용되지 않습니다.
사용하여 String에서 서브스트링을 얻는 것은 매우 유용했습니다.characters
속성이지만 지금은 더 이상 사용되지 않으며 Xcode에서 사용을 제안합니다.substring
SO 관련 질문과 애플 개발자 튜토리얼/가이드라인을 확인해 보았습니다.그러나 제안된 솔루션/대체 솔루션을 볼 수 없습니다.
다음은 경고 메시지입니다.
'computers'는 더 이상 사용되지 않습니다.문자열 또는 하위 문자열을 사용하십시오.
속성을 사용하여 수행/처리되는 문자열 작업이 너무 많습니다.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
왜냐면String
Swift 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
'source' 카테고리의 다른 글
ASP.Net MVC – 리소스를 찾을 수 없음 오류 (0) | 2023.06.28 |
---|---|
이름으로 여러 열 이름 바꾸기 (0) | 2023.06.28 |
R data.frame에서 행을 가져오는 방법 (0) | 2023.06.28 |
VS 2010.net 4.0에서 엔티티 프레임워크를 사용할 때 'datetime2' 오류가 발생했습니다. (0) | 2023.06.28 |
R에서 플롯의 글꼴 크기를 늘리는 방법은 무엇입니까? (0) | 2023.06.28 |