2017-11-23 4 views
2

プロジェクトをSwift 3からSwift 4にアップグレードしましたが、ifの条件で非機能型の値'AnyClass' (aka 'AnyObject.Type')を呼び出すことができませんでした。これを解決するには?種類(of :)関数のコンパイラの警告がSwift 4

func getHandler(_ type:AnyClass) -> CSHandler? { 
    for handler in handlers { 
     if type(of: handler) === type { 
      return handler 
     } 

    } 

    return nil 
} 

答えて

1

私は、コンパイラは、パラメータtypeと方法type(of:)の両方で混乱していると思うが、同じ初期のトークンを持っています。あなたは

func getHandler(_ pType: AnyClass) -> AnyObject? { 
    for handler in handlers { 
    if type(of: handler) === pType { 
     return handler 
    } 
    } 
    return nil 
} 

以下のようpTypetypeからパラメータ名を変更することができますこれはあなたのために働く必要があると私はあなたが本当にためのタイプで、

+0

ありがとうこの問題についてアップルにバグレポートを提出することをお勧め(of :)私のタイプと標準ライブラリとの間の競合、あなたの答えをありがとう – Woodyhang