Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 属性更改时可观察不更新列表_Ios_Arrays_List_Observable_Swiftui - Fatal编程技术网

Ios 属性更改时可观察不更新列表

Ios 属性更改时可观察不更新列表,ios,arrays,list,observable,swiftui,Ios,Arrays,List,Observable,Swiftui,我正在使用列表上的SwiftUI显示对象数组,并使用ObserveObject跟踪对象的变化。如果通过添加或删除来更改数组,列表将自动更改 但是如果我改变了对象的属性。该列表将不会更新 任何建议更新列表,即使属性得到更新,或无论如何强制更新列表 List(self.carService.partList){ part in RowList(part:part) } 推到主线程?可能正在进行更新,只是因为线程不匹配而没有正确列出您需要显示更多代码来解决问题 在大多数情况下,由于属性

我正在使用列表上的SwiftUI显示对象数组,并使用ObserveObject跟踪对象的变化。如果通过添加或删除来更改数组,列表将自动更改

但是如果我改变了对象的属性。该列表将不会更新

任何建议更新列表,即使属性得到更新,或无论如何强制更新列表

 List(self.carService.partList){ part in
     RowList(part:part)
 }

推到主线程?可能正在进行更新,只是因为线程不匹配而没有正确列出

您需要显示更多代码来解决问题

在大多数情况下,由于属性使用无效,ObservedObject不会更新。为了确保您想告诉对象数据已更改,我们可以告诉对象通知视图。 有关如何使用ObservedObject和Published属性的示例

import Combine
import SwiftUI

class A: ObservableObject {
    @Published var id: String = ""
    @Published var value: String = ""
}

struct Example: View {

    @ObservedObject var obj: A

    var body: some View {
        Button(action: {
            self.obj.value = "Hi im changed"
            self.obj.objectWillChange.send()
        }) {
            Text("Change me")
        }
    }
}
要通知视图数据已更改,请注意以下行:

self.obj.objectWillChange.send()

祝你好运

如果添加您的
observateObject
以及列表所包含的视图结构,我们将能够更有效地回答您的问题。请显示更改的属性代码。我在
DispatchQueue.main.async
下所做的任何更改,如我所说,如果添加或删除数组的任何成员,都可以正常工作。