我正在尝试创建一个包含唯一值的记录类型,并将充当另一个记录类型的目标引用对象。例如,记录类型 - 电影将包含用户提交的唯一电影列表。并且 FavoriteMovies 将包含一个用户参考和一个电影参考。用户可以从现有电影列表中进行选择,或向其中添加新电影。
如果我创建一个新的电影记录,而另一个用户创建一个具有相同名称的新记录(在我检索到电影列表之后,但在我尝试添加新记录之前),就会出现问题。这两条新记录被视为具有不同记录 ID 的不同记录。这意味着一旦我保存了新的,将有两个具有保存名称的电影实例。
我无法找到对电影记录类型执行“如果不存在则保存”类型操作的方法。我可以在查询的完成块中保存,但这两个操作不会是保证唯一性的原子事务。据我所知,CKQueryOperation
与CKModifyRecordsOperation
.
有没有办法仅在单个事务中不存在该值时才插入记录?