相关疑难解决方法(0)

无法解码类的对象


我正在尝试向我的Watchkit扩展发送"类",但是我收到此错误.

*由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'* - [NSKeyedUnarchiver decodeObjectForKey:]:无法解码类的对象(MyApp.Person)

存档和取消存档在iOS应用程序上运行良好,但在与watchkit扩展程序通信时无效.怎么了?

InterfaceController.swift

    let userInfo = ["method":"getData"]

    WKInterfaceController.openParentApplication(userInfo,
        reply: { (userInfo:[NSObject : AnyObject]!, error: NSError!) -> Void in

            println(userInfo["data"]) // prints <62706c69 7374303...

            if let data = userInfo["data"] as? NSData {
                if let person = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? Person {
                    println(person.name)
                }
            }

    })
Run Code Online (Sandbox Code Playgroud)

AppDelegate.swift

func application(application: UIApplication!, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]!,
    reply: (([NSObject : AnyObject]!) -> Void)!) {

        var bob = Person()
        bob.name = "Bob"
        bob.age = 25

        reply(["data" : NSKeyedArchiver.archivedDataWithRootObject(bob)])
        return
}
Run Code Online (Sandbox Code Playgroud)

Person.swift

class …
Run Code Online (Sandbox Code Playgroud)

ios swift watchkit

26
推荐指数
4
解决办法
1万
查看次数

标签 统计

ios ×1

swift ×1

watchkit ×1