복붙노트

[SWIFT] 스위프트의 표준 라이브러리와 이름 충돌

SWIFT

스위프트의 표준 라이브러리와 이름 충돌

해결법


  1. 1.스위프트에서의 네임은 암시 적이다. 모든 클래스와 다른 기호는 클래스 문자열 정규화 된 이름이 MyTarget.String 것 정의하는 경우가. 그래서에 정의 된 대상 (모듈)에 속한다. 이름 충돌이있을 때, 당신은 그것이 현재 모듈에 정의 된 이름을 가진 클래스가있는 경우를 제외에 정의 된 모듈 (프레임 워크)와 클래스 이름을 접두사해야 -이 클래스가 우선 할 필요가 없습니다 접두사.

    스위프트에서의 네임은 암시 적이다. 모든 클래스와 다른 기호는 클래스 문자열 정규화 된 이름이 MyTarget.String 것 정의하는 경우가. 그래서에 정의 된 대상 (모듈)에 속한다. 이름 충돌이있을 때, 당신은 그것이 현재 모듈에 정의 된 이름을 가진 클래스가있는 경우를 제외에 정의 된 모듈 (프레임 워크)와 클래스 이름을 접두사해야 -이 클래스가 우선 할 필요가 없습니다 접두사.

    struct String {
        var swiftString = ""
    }
    
    var a = String()
    var b = Swift.String()
    

    당신이 당신의 클래스의 TreeNode를 생성하고 애플이 나중에뿐만 아니라 TreeNode를 추가한다면, 당신은 단지 하나의 모듈을 사용하는 경우 이름이 우선 것입니다 당신은 변경 아무것도 필요하지 않을 것입니다. 당신이 스위프트의의 TreeNode를 사용하고자한다면, 당신은 Swift.TreeNode로 참조해야합니다.

  2. from https://stackoverflow.com/questions/25231650/swifts-standard-library-and-name-collision by cc-by-sa and MIT license