结合使用CoreData和Combine

时间:2020-07-05 20:04:09

标签: swift core-data combine

我正在尝试找到一种结合使用CoreData的简单方法。

简而言之,我一直在成功地结合使用 <tr *ngFor="let data of dataArray | keyvalue"> <td class="my-table-header"><span class="badge badge-light">Values</span></td> <td class="cntr" *ngIf="data.key === 'valueofcoding'"><input type="text" readonly class="form-control-plaintext my-table-header-val" value="{{data.value}}"/></td> <td class="cntr" *ngIf="data.key === 'valueoftesting'"><input type="text" readonly class="form-control-plaintext my-table-header-val" value="{{data.value}}"/></td> <tr> 的普通旧Swift对象。我可以使用ObservableObjects属性来构建管道,并且可以使用它们来完成所有y和y合并的事情。

现在我要对CoreData对象做同样的事情。

我遇到了以下问题:

  1. @Published属性不能声明为@NSManaged。真是可惜。
  2. 我在@Published上阅读了有关ObjectWillChange发布者的信息,但是找不到一个有意义的示例-我可以找到的所有示例都使用了NSManagedObject。我希望能够发现更改了什么属性,无论是在后台更改了该属性(由于iCloud同步)还是由于用户交互等。
  3. 我读到一种技术,该技术将所有.sink { print }属性替换为Swift属性,然后能够利用属性观察者-@NSManageddidSet。这似乎不太好,因为它不可扩展(手动更改每个对象...)。这似乎也很容易破解,我担心它会掉下来的地方。此外,似乎您不能以这种方式使用didGet。因此,我可能需要拥有此核心数据属性句柄@Published并写到另一个属性didSet,其唯一目的是使用Combine ...似乎很容易。
  4. 我可以上一所老学校@Published,但这似乎并不灵活。

有没有人以可能应该起作用的方式工作的-也就是说,在CoreData对象上进行合并与在普通旧的swift对象上进行合并一样自然?

0 个答案:

没有答案