我正在尝试找到一种结合使用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对象做同样的事情。
我遇到了以下问题:
@Published
属性不能声明为@NSManaged
。真是可惜。@Published
上阅读了有关ObjectWillChange
发布者的信息,但是找不到一个有意义的示例-我可以找到的所有示例都使用了NSManagedObject
。我希望能够发现更改了什么属性,无论是在后台更改了该属性(由于iCloud同步)还是由于用户交互等。.sink { print }
属性替换为Swift属性,然后能够利用属性观察者-@NSManaged
和didSet
。这似乎不太好,因为它不可扩展(手动更改每个对象...)。这似乎也很容易破解,我担心它会掉下来的地方。此外,似乎您不能以这种方式使用didGet
。因此,我可能需要拥有此核心数据属性句柄@Published
并写到另一个属性didSet
,其唯一目的是使用Combine ...似乎很容易。@Published
,但这似乎并不灵活。有没有人以可能应该起作用的方式工作的-也就是说,在CoreData对象上进行合并与在普通旧的swift对象上进行合并一样自然?