2016-03-29 4 views
0

私は、私のobjective-cプロジェクトに統合された迅速なクラスを持っており、私はアクセスして使用できるオブジェクトを返します。私は認識されないセレクター」のための標準的な方法Objective-cプロジェクトのSwiftオブジェクトを符号化します

- (void)encodeWithCoder:(NSCoder *)encoder 

- (id)initWithCoder:(NSCoder *)decoder 

しかし、私のアプリケーションがクラッシュを使用して、それをデコード/このオブジェクトおよびエンコードでプロパティを作成する(OBJ-Cファイルで)試してみましたインスタンスXXXに送信されました "。

私はこの直接的な方法で迅速なオブジェクトをシリアル化することはできないと思いますが、今解決する方法はわかりません。継承)

B - または -

あなたスウィフトクラスでencodeWithCoderメソッドのセットを書きa)の

:あなたが持っているでしょうこれが動作するためには、あなたの助け

+1

エラーを検出するには、クラス(その他のコード)を記述してください。 – Diego

+0

投稿するコードがわからないので、私はいつものように素早くオブジェクトを直列化しようとします。[エンコーダencodeObject:self.OBAds forKey:@ "OBAds"]; – user3801885

+0

OBAdsオブジェクトはNSCoderを実装していないようです – Dzamir

答えて

0

にこれは単純なクラス迅速です。これを例として取り上げることができます。私たちがあなたの助けになることを願っています。

class UserBean:NSObject,NSCoding { 

    var idUser:NSNumber? 
    var username:String? 
    var password:String? 
    var email:String? 
    var token:String? 
    var fonte:String? 
    var idFacebook:String? 
    var uuid:String? 
    var profilo = UserProfileBean() 

    override init() { 
     super.init() 
     self.profilo = UserProfileBean() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     idUser  = aDecoder.decodeObjectForKey("idUser") as? NSNumber 
     username = aDecoder.decodeObjectForKey("username") as? String 
     password = aDecoder.decodeObjectForKey("password") as? String 
     email  = aDecoder.decodeObjectForKey("email") as? String 
     token  = aDecoder.decodeObjectForKey("token") as? String 
     fonte  = aDecoder.decodeObjectForKey("fonte") as? String 
     idFacebook = aDecoder.decodeObjectForKey("idFacebook") as? String 
     uuid  = (aDecoder.decodeObjectForKey("uuid") as? String)! 
     profilo  = (aDecoder.decodeObjectForKey("profilo") as? UserProfileBean)! 

    } 
    func encodeWithCoder(aCoder: NSCoder) { 
     aCoder.encodeObject(idUser,  forKey: "idUser") 
     aCoder.encodeObject(username, forKey: "username") 
     aCoder.encodeObject(password, forKey: "password") 
     aCoder.encodeObject(email,  forKey: "email") 
     aCoder.encodeObject(token,  forKey: "token") 
     aCoder.encodeObject(fonte,  forKey: "fonte") 
     aCoder.encodeObject(idFacebook ,forKey: "idFacebook") 
     aCoder.encodeObject(uuid ,forKey: "idFacebook") 
     aCoder.encodeObject(profilo,forKey: "profilo") 

    } 
    } 
1

のためにあなたに感謝します

(b)は単純な真実が明らかになるまで私に混乱をもたらしました:スウィフトオブジェクトはではありません。 NSObjectから降下するので、単純に期待していない多くの機械はありませんそこには、coderシステム全体が含まれています。あなたが変更されたときの機能のかなりのビットが使用可能になる:

class myClass { 

class myClass: NSObject { 
関連する問題