Java toString ()에 해당하는 Swift
toString()
클래스 인스턴스의 상태를 인쇄하기 위해 Java 에 해당하는 Swift는 무엇입니까 ?
description
속성은 당신을 위해 무엇을 찾고 있습니다. 객체를 포함하는 변수를 인쇄 할 때 액세스되는 속성입니다.
description
프로토콜을 채택한 CustomStringConvertible
다음 description
속성 을 구현 하여 자신의 클래스에 추가 할 수 있습니다 .
class MyClass: CustomStringConvertible {
var val = 17
public var description: String { return "MyClass: \(val)" }
}
let myobj = MyClass()
myobj.val = 12
print(myobj) // "MyClass: 12"
description
String
생성자 를 호출 할 때도 사용됩니다 .
let str = String(myobj) // str == "MyClass: 12"
이것은 인스턴스 설명에 액세스하는 데 권장되는 방법입니다 ( myobj.description
클래스가 구현하지 않는 경우 작동하지 않음 CustomStringConvertible
).
클래스 대신 구조체를 사용할 수 있다면 추가로 할 일이 없습니다.
구조체는 출력에 잘 인쇄됩니다.
print("\(yourStructInstance)")
또는 다음과 같은 클래스로 :
print(String(describing: yourClassInstance))
당신은 사용해야합니다 String(obj)
.
CustomStringConvertible에 대한 문서 에서 직접 :
노트
String (instance)는 모든 유형의 인스턴스에 대해 작동하며 인스턴스가 CustomStringConvertible 인 경우 설명을 반환합니다. 따라서 CustomStringConvertible을 일반 제약 조건으로 사용하거나 준수 형식의 설명에 직접 액세스하는 것은 권장되지 않습니다.
NSObject
확장 클래스로 수행되는 방법
모델 클래스가에서 확장 된 경우 다음과 같이 NSObject
변수를 재정의해야 description
합니다.
public override var description: String {
return "\n{\n index: \(self.index),\n"
+ " country: \(self.name),\n"
+ " isoCountryCode: \(self.isoCountryCode),\n"
+ " localeId: \(self.localeId),\n"
+ " flagImageName: \(self.flagImageName!)\n}"
}
당신은 내가 그 일을 어떻게 확인할 수 있습니다 내에서 여기 Country
클래스 에서, "CountryPicker 아이폰 OS 스위프트 라이브러리" .
또는 이해하기 쉽도록 클래스와 description
메서드는 다음과 같아야합니다.
public class MyClass: NSObject {
public var memberAttribute = "I'm an attribute"
public override var description: String {
return "My Class member: \(self.memberAttribute)"
}
}
참고 : Modal 클래스를 확장하기 때문에 클래스가 더 이상 NSObject
클래스를 준수 할 필요가 없으며 클래스 자체의 변수를 CustomStringConvertible
재정의 합니다. 항상 기억하십시오. 대부분은 이것을 달성하는 순수한 Swift 방법입니다.description
NSObject
CustomStringConvertible
참고 URL : https://stackoverflow.com/questions/36587104/swift-equivalent-of-java-tostring
'Programing' 카테고리의 다른 글
ZooKeeper 대안? (0) | 2020.11.02 |
---|---|
클러스터 환경에서 실행되는 Spring Scheduled Task (0) | 2020.11.02 |
FolderBrowserDialog 대화 상자가 선택한 폴더로 스크롤되지 않는 이유는 무엇입니까? (0) | 2020.11.02 |
다중 프로젝트의 SBT 테스트 종속성 : 종속 프로젝트에서 테스트 코드를 사용할 수 있도록 설정 (0) | 2020.11.02 |
자바 스크립트 네이티브 코드 읽기 (0) | 2020.11.02 |