相关疑难解决方法(0)

在Swift上设置Timer

我试图重复执行函数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)

timer ios swift swift3

2
推荐指数
2
解决办法
4411
查看次数

SwiftUI中的计算(NSObject)属性不会更新视图

因此,我想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)

core-data swift computed-properties swiftui combine

2
推荐指数
1
解决办法
1151
查看次数

标签 统计

swift ×2

combine ×1

computed-properties ×1

core-data ×1

ios ×1

swift3 ×1

swiftui ×1

timer ×1