In the SnarfOperation class, in the .h file we declare the properties to all be read-only. Inside of the .m file we redeclare as readwrite. How do these get resolved? Is that specified somewhere? Is is possible to have a clash?
The .h file has the public interface, so we don’t want folks to mess with the guts of the properties. In the implementation, it’s good to vector through the properties (makes it easy to set a single breakpoint when things change). Making them read-only in the header satisfies the first criteria, and then changing them to read-write in the implementation satisfies the other.
That is a good article to explain the inner workings there. Thanks.