作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我尝试实现 AwesomeCache 的一个分支,它在 Swift 4 中实现了 unarchiveTopLevelObjectWithData
:
if let data = NSData(contentsOfFile: path) {
do {
possibleObject = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data as NSData) as? CacheObject
}
catch {}
}
但是 Xcode 现在生我的气了,并说:
'unarchiveTopLevelObjectWithData' was obsoleted in Swift 4 (Foundation.NSKeyedUnarchiver)
意思是,imo,因为它没有告诉我它被替换了什么(如果有的话?),以及 documentation相当...空缺。
那么我应该用什么来代替呢?
最佳答案
同意你的看法,NSData
不是Data
,一个改进可以是:
if let nsData = NSData(contentsOfFile: path) {
do {
let data = Data(referencing:nsData)
possibleObject = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? CacheObject
}
catch {}
}
关于ios - NSKeyedUnarchiver.unarchiveTopLevelObjectWithData 在 Swift 4 中被废弃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49526740/
我使用cocos2d-x和Lua进行开发。最近我使用 Instruments 并发现了一些被废弃的内存:cocos2d-x 在自己的自动释放池中对对象执行释放,但我仍然有来自 Lua 的引用。如何确定
我是一名优秀的程序员,十分优秀!