单击按钮不会将对象添加到缓存
Objects do not added to cache by clicking on button
我正在尝试使用简单的对象缓存。在这个例子中,我假设第一次点击按钮时,对象将被添加到缓存中,然后从缓存中获取它。但是每次单击按钮时,我都会收到一条消息,指出该对象已再次添加到缓存中,尽管它应该已经从缓存中取出了。
import SwiftUI
struct ContentView: View {
var body: some View {
Button(action: {
let cache = NSCache<NSString, TestObject>()
let myObject: TestObject
if let cachedVersion = cache.object(forKey: "cachedObject") {
print("Get cache")
myObject = cachedVersion
} else {
print("Set cache")
myObject = TestObject()
cache.setObject(myObject, forKey: "cachedObject")
}
}, label: {
Text("Cache it!")
})
}
}
class TestObject: Codable {
var status: String = ""
var totalResults: Int = 0
var posts: String = "PostsObject"
}
而且我总是在控制台中收到 Set cache
消息。
哪里错了?
试试放
let cache = NSCache<NSString, TestObject>()
在
之外
var body: some View
如您所见,每次按下按钮都会创建一个新的缓存。
我正在尝试使用简单的对象缓存。在这个例子中,我假设第一次点击按钮时,对象将被添加到缓存中,然后从缓存中获取它。但是每次单击按钮时,我都会收到一条消息,指出该对象已再次添加到缓存中,尽管它应该已经从缓存中取出了。
import SwiftUI
struct ContentView: View {
var body: some View {
Button(action: {
let cache = NSCache<NSString, TestObject>()
let myObject: TestObject
if let cachedVersion = cache.object(forKey: "cachedObject") {
print("Get cache")
myObject = cachedVersion
} else {
print("Set cache")
myObject = TestObject()
cache.setObject(myObject, forKey: "cachedObject")
}
}, label: {
Text("Cache it!")
})
}
}
class TestObject: Codable {
var status: String = ""
var totalResults: Int = 0
var posts: String = "PostsObject"
}
而且我总是在控制台中收到 Set cache
消息。
哪里错了?
试试放
let cache = NSCache<NSString, TestObject>()
在
之外var body: some View
如您所见,每次按下按钮都会创建一个新的缓存。