As I stated in my previous message, "I do not know Objective-C or Swift". So you need to look at what your code is actually doing and why it is not doing deep copy operations. Hint: you could always try the documentation for whichever language you are using.
You need to clone the contents of the source array. [copy] method of NSMutableArray makes a reference copy with new array variable hence your content in backup array gets updated when you update source array. Use
to create a clone of source array but with new reference pointer to it. Hope it helps.
Before the task finish r u sending another image to print. The error seems to be like this. In case of multiple images all images should be in a queue , First come first serve. Till one job is not done . another image should wait.