我试图重复执行函数pepe(),我没有错误,但它不起作用.
这是我的代码:
public class MyClass {
var timer = Timer()
@objc func pepe() -> String {
let hola = "hola"
return hola
}
func startTimer(){
let seconds = 1.0
timer = Timer.scheduledTimer(timeInterval: seconds, target: ().self, selector: #selector(pepe), userInfo: nil, repeats: false)
}
func stopTimer() {
timer.invalidate()
}
init() {
self.startTimer()
self.stopTimer()
}
}
var pepe = MyClass()
pepe.stopTimer()
pepe.startTimer()
Run Code Online (Sandbox Code Playgroud) 因此,我想Text根据我的CoreData模型的内容来更改其内容。为此,我在Xcode beta 4中使用了一个计算属性,但是它似乎不再起作用。这是一个错误,还是我看不到其他问题?
我确切的问题是,self.objectWillChange.send()在我的商店中调用时,我的视图(和计算的属性)似乎没有更新。
我还试图将我的var“导出”到商店中,然后从那里得到它,结果相同。
编辑:
我只是对另一个类尝试了相同的方法,objectWillChange.send()但它仅与@Published但不一起工作,但是如果从NSObject继承的类则停止工作...
我才发现:
struct Today: View {
@EnvironmentObject var myStore: DateStore
var hasPlans: Bool {
guard let plans = myStore.getPlans() else { return false }
return plans.isEmpty
}
var body: some View{
VStack{
Text(hasPlans ? "I have plans":"I have time today")
Button(action: {
self.myStore.addPlans(for: Date())
}) {
Text("I have plans")
}
}
}
class DateStore: NSObject, ObservableObject, NSFetchedResultsControllerDelegate {
private var fetchedResultsController: NSFetchedResultsController<DateStore>
//...
public func addPlans(for …Run Code Online (Sandbox Code Playgroud)