Textures may not be released from memory due to caching system.
You could use the completion
when you run your action for example:
self.run(SKAction.animate(with:[texture1, texture2]), completion: {
//animation is ended, do other stuff
})
Check this answer for more detail.
From the official docs:
The texture data is prepared for rendering when:
A sprite or particle that uses the texture is part of a node tree that
is being rendered.
Once the SKTexture object is ready for rendering, it stays ready until
all strong references to the texture object are removed. ...
None of
these textures must be loaded because their data is already in memory
when the texture is created. However, the texture must still be
prepared by SpriteKit before it can be used for rendering.
There are no options (for now - Swift 3) to directly deallocated these texture from memory. Anyway remain just nil
assignment.