此代码适用于Swift 2.x:
/// An internal in-memory cache
private var dataCache = NSCache.init()
Run Code Online (Sandbox Code Playgroud)
在Swift 3中,它会导致编译错误:
Generic parameter 'KeyType' could not be inferred
Run Code Online (Sandbox Code Playgroud)
为什么会这样,我应该如何重构这一点(迁移工具没有选择这个)?
vad*_*ian 40
NSCache已经改为Cache. NSCache.无论如何NSCache现在是通用的.
public class NSCache<KeyType : AnyObject, ObjectType : AnyObject> : NSObject { ...
Run Code Online (Sandbox Code Playgroud)
所以最通用的语法是
private var dataCache = NSCache<AnyObject, AnyObject>()
Run Code Online (Sandbox Code Playgroud)
init()不需要显式(甚至在Swift 2中也没有)
| 归档时间: |
|
| 查看次数: |
9720 次 |
| 最近记录: |