2016-07-23 3 views
-1

저는 Swift를 배우기 시작했고 변수의 유형에 따라 값을 반환해야하는 dynamicType 함수를 발견했습니다. 그러나 나를 위해, 모든 변수에 대해 "(Metatype)"만 리턴합니다. 그것은 반환 해야하는지 누군가 말해 줄 수 있습니까? 그것이 올바르지 않다면 왜 잘못 작동하는 것입니까? Xcode 버전 6.1.1을 사용하고 있습니다. Swift에서 dynamicType이 반환해야하는 항목은 무엇입니까?

내가 쓴 것입니다

var str = "Hello, playground" 

str.dynamicType 

출력 :

Hello, playground 

(Metatype) 
+6

먼저 객체의 유형을 알고 –

+0

완전히 오래된 엑스 코드를 업데이트해야합니다. 이 [링크] 참조 (http://stackoverflow.com/questions/24101450/how-do-you-find-out-the-type-of-an-object-in-swift) – Khundragpan

+0

그것은 _logs_ 전용 "(메타 타입) "(매우 원시적 인 Xcode/Swift 버전에서)하지만 실제로는 그렇지 않습니다. – matt

답변

4

메타 타입 형 클래스 유형, 구조 유형, 열거 유형 및 프로토콜 유형을 포함하여 모든 종류의 유형을 의미 . 문자열 데이터 유형이 아니기 때문에 여기에 이름을 인쇄하지 못할 수도 있습니다. dynamicType의 목적은 다음과 같이 런타임 비교에이를 사용하는 것입니다.

if someInstance.dynamicType === SomeClass.self { 

자세한 내용은 다음 링크를 참조하십시오. 사용자 정의 클래스의 이름을 실제로 인쇄하려면 링크에 제안 된대로 "class func printClassName()"을 작성하십시오.

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html