此代码适用于Swift 2.x:
/// An internal in-memory cache
private var dataCache = NSCache.init()
在 Swift 3 中会导致编译错误:
Generic parameter 'KeyType' could not be inferred
为什么会这样,我应该如何重构这一点(迁移工具没有选择这个)?
答案 0 :(得分:40)
NSCache
已将Cache
更改为NSCache
。 NSCache
。无论如何public class NSCache<KeyType : AnyObject, ObjectType : AnyObject> : NSObject { ...
现在是通用的。
private var dataCache = NSCache<AnyObject, AnyObject>()
所以最通用的语法是
init()
不需要显式的var query = from area in db.res_areas_sucursal
join mesa in db.res_mesas_sucursal on area.area_gkey equals mesa.area_gkey
select new { area, mesa } ;
return query;
(即使在Swift 2中也没有)