2016-07-23 4 views
-1

私はSwiftを学び始めたばかりで、その値に従って変数の型を返す関数dynamicTypeを見つけました。しかし、私にとっては、すべての変数に対して「(メタタイプ)」のみを返します。それは返す必要があるかどうか誰にでも教えてもらえますか?それが正しくない場合、それはなぜ間違って動作しています。私はXCodeバージョン6.1.1を使用しています。SwiftでdynamicTypeが返されるべきものは何ですか?

これは私が

var str = "Hello, playground" 

str.dynamicType 

出力書かれたものです:

Hello, playground 

(Metatype) 
+6

あなたは、最初のオブジェクトの種類を知るために –

+0

完全に時代遅れであるあなたのXcodeを更新する必要があります。これを参照してください[リンク](http://stackoverflow.com/questions/24101450/how-do-you-find-out-the-type-of-an-object-in-swift) – Khundragpan

+0

それは_logs_のみ "(メタタイプ) "(あなたの非常に原始的なXcode/Swift版)では、実際にはそうではありません。 – matt

答えて

4

メタタイプタイプは、クラス型、構造型、列挙型、およびプロトコルタイプを含め、あらゆる種類のタイプを指し。文字列dataTypeではないため、ここで名前を印刷できない場合があります。 dynamicTypeの目的は、以下のような実行時比較のためにそれを使用することです。

if someInstance.dynamicType === SomeClass.self { 

詳細については、次のリンクを参照してください。本当にカスタムクラスの名前を印刷したい場合は、リンクに示唆されているように "class func printClassName()"を作成してください。

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

関連する問題