此代码适用于 Swift 2.x:
/// An internal in-memory cache
private var dataCache = NSCache.init()
In Swift 3它会导致编译错误:
Generic parameter 'KeyType' could not be inferred
为什么会这样,我应该如何重构它(迁移工具没有发现这个)?
- 在第一个 Swift 3 beta 中
NSCache
已更改为Cache
.
- 在最新的测试版(目前为 5 个)中,它已恢复为
NSCache
.
Anyway NSCache
现在是通用的。
public class NSCache<KeyType : AnyObject, ObjectType : AnyObject> : NSObject { ...
所以最通用的语法是
private var dataCache = NSCache<AnyObject, AnyObject>()
明确的init()
不需要(即使在 Swift 2 中也不需要)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)