2017-10-17 7 views
0

ObjCでSwift 3クラスをインポートしようとしていますが、何らかの理由でこれを実行できません。クラスはUIViewControllerクラスではなく、私が見つけたソリューションはView Controllerクラスでは完全に機能しますが、Modelクラスでは機能しません。誰も助けることができますか? Objective-Cで表示されるようにスイフトクラスについてインポートスウィフト非表示コントローラクラスをスウィフトで表示する

open class UserDetails: JSONEncodable { 
    public var id: Int64? 
    public var usertoken: String? 
    public var firstName: String? 
    public var lastName: String? 
    public var email: String? 
    ..... 
} 

答えて

1

、それはNSObjectサブクラスでなければなりません。また、型はObjective-C互換でなければなりません(例えば、Int64?のようなオプションの数値型はObjective-Cでは表現できません)。これはオプションではないか、NSNumberにする必要があります。

Writing Swift Classes and Protocols with Objective-C Behaviorで表示Swift with Cocoa and Objective-Cを使用する。


FYI、私はあなたがスウィフト3について尋ね知っているが、スウィフト4書いてあれば、使用してください@objcMembers

@objcMembers 
open class UserDetails: NSObject, JSONEncodable { 
    public var id: Int64 = 0 
    public var usertoken: String? 
    public var firstName: String? 
    public var lastName: String? 
    public var email: String? 
    ... 
} 

それとものみこれらのいくつかはObjective-から利用できるようにする必要がある場合Cでは、@objc修飾子を使用して個々のプロパティ/メソッドを指定するだけです。

+0

ありがとうたくさんありましたが、swift3のために私はちょうどNSObjectのUserDetailsサブクラスを作成し、@ ObjCを追加しました。 –

関連する問題