Why do you use .removeAll instead of assiging an empty array? Does this approach has any (theoretical) performance or stylistic advantages or just a matter of personal preferences?
Syntactically, removeAll makes better sense to me personally since you are clearing up an existing array and adding new elements to it. But functionally (and performance-wise) I believe both removeAll and assigning an empty array do about the same thing.
See the following Stack Overflow thread if you are interested in the nitty gritty details:
You should be able to move multiple cells at a time around using the new Drag & Drop API in iOS 11. Take a look at the following WWDC video to see the details: