Chapter 13. Communication Between Objects

As soon as an app grows to more than a few objects, puzzling questions can arise about how to send a message or communicate data between one object and another. It may require some planning to construct your code so that all the pieces fit together and information can be shared as needed at the right moment. This chapter presents some organizational considerations that will help you arrange for one object to be able to communicate with another.

Visibility Through an Instance Property

The problem of communication often comes down to one object being able to see another: the object Manny needs to be able to find the object Jack repeatedly and reliably over the long term so as to be able to send Jack messages. One obvious solution is an instance property of Manny whose value is Jack.

An instance property is appropriate particularly when Manny and Jack share certain responsibilities or supplement one another’s functionality. Here are some cases where one object needs to have an instance property pointing at another:

  • The application object and its delegate

  • A table view and its data source

  • A view controller and the view that it controls

Manny may have an instance property pointing to Jack, but this does not necessarily imply that Manny needs to assert ownership of Jack as a matter of memory management policy (see Chapter 12):

  • An object does not typically retain its delegate or its data source.

  • An object that implements the target–action ...

Get iOS 13 Programming Fundamentals with Swift now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.