以下代碼工作得非常好,但我很驚訝,因爲我認爲NSCache
將需要對象鍵值&值,並且不會採用CGFloat
s。有人可以向我解釋發生了什麼事嗎?非對象類型的NSCache行爲
class A
var cachedPoints = NSCache()
func rAt(theta theta: CGFloat) -> CGFloat {
if let r = self.cachedPoints.objectForKey(theta) as? CGFloat {
return r
}
// do some very expensive maths here...
let r = self.veryExpensiveFunction(theta)
self.cachedPoints.setObject(r, forKey: theta)
return r
}
}
你在問題中提到了CGPoint,但是這在代碼中沒有發生。你的意思是CGFloat? –
哎呀,是的。將編輯。 – Grimxn