gpt4 book ai didi

swift - 如何将委托(delegate)与 NSKeyedUnarchiver 一起使用?

转载 作者:IT王子 更新时间:2023-10-29 05:38:24 31 4
gpt4 key购买 nike

我正在使用 NSKeyedUnarchiver 取消存档一个对象,并想使用委托(delegate) (NSKeyedUnarchiverDelegate),但我的委托(delegate)没有被调用。存档和取消存档工作正常,但未调用委托(delegate)(unarchiver 和 unarchiverDidFinish)。有人可以帮忙吗?

我有以下实现:

        class BlobHandler: NSObject , NSKeyedUnarchiverDelegate{

func load() -> MYOBJECTCLASS{
let data:NSData? = getBlob();
var mykeyedunarchiver:NSKeyedUnarchiver=NSKeyedUnarchiver(forReadingWithData: data!);
mykeyedunarchiver.delegate = self;
let temp=mykeyedunarchiver.decodeObjectForKey("rootobject")
// No delegates are called
if temp==nil {
blobsexists=false;
}else{
objectreturn = temp! as! MYOBJECTCLASS;
return objectreturn;
}
}

func save1(myobject:MYOBJECTCLASS){
let data = NSMutableData()
var keyedarchiver:NSKeyedArchiver=NSKeyedArchiver(forWritingWithMutableData: data);
keyedarchiver.encodeObject(maptheme, forKey: "rootobject");

let bytes = data.bytes;
let len=data.length;
saveblob(bytes);
}

以下委托(delegate)(也在我的 Blobhandler 中实现)从未被调用:

func unarchiver(unarchiver: NSKeyedUnarchiver, cannotDecodeObjectOfClassName name: String, originalClasses classNames: [String]) -> AnyClass? {
print("I am in unarchiver !");
return nil;
}

func unarchiverDidFinish(_ unarchiver: NSKeyedUnarchiver){
print("I am in unarchiverDidFinish ! ");
}

最佳答案

我不知道它是什么,但它在清理和重建项目后工作。我注意到在不同的情况下,构建有时不同步。有时会有代码,它在 XCode 中但没有执行。听起来难以置信,但我想这是真的。XCode 7.2

关于swift - 如何将委托(delegate)与 NSKeyedUnarchiver 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824624/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com