PHFetchResultChangeDetails 的 "hasMoves" 何时等于 YES?

When is PHFetchResultChangeDetails's "hasMoves" equal to YES?

我正在编写 PHChange 的子类以及 PHFetchResultChangeDetails。 我理解 insertedIndexesinsertedObjectsfetchResultBeforeChangesfetchResultAfterChanges 等字段。

看不懂的是一个字段hasMoves。文档说它是 "A Boolean value that indicates whether objects have been rearranged in the fetch result"

所以我的问题是:
1. 当 hasMoves = YES 时,用户应该怎么做才能重现这种情况?
2. 如果hasMoves = YES 可以从insertedIndexes\ changedIndexes \ removedIndexes 计算走法,还是我无法访问有关走法的信息?

嗯, 可以重新排列自定义相册中的照片(但不能像 CameraRollFavorites 等标准相册):

打开您要整理的相册。将手指轻轻放在要移动的照片上,然后将其拖到其他位置。松开手指将其放到新位置。

以编程方式,PHAssetCollectionChangeRequest 可以使用:

- (void)replaceAssetsAtIndexes:(NSIndexSet *)indexes 
                withAssets:(id<NSFastEnumeration>)assets;