Pass in Immutable Objects Edit on GitHub

Objects passed into components should be immutable.

+new is called on a background thread. It can even be called on multiple threads simultaneously for the same parameters.

If you pass in mutable objects with nonatomic properties, you will introduce thread safety crashes.

Even if you pass in mutable objects that have only atomic properties, you are introducing a logic race condition. Rendering the exact same object twice could result in different outputs, which doesn’t make any sense!