I have a
@property (readonly) MyCustomController* customController;
self.customController.myCustomProperty = [CustomProperty new];
The readonly attribute is an easy way to make a property read-only. It
omits the setter method and prevents assignment via dot-notation, but
the getter is unaffected. As an example, let’s change our Car
interface to the following. Notice how you can specify multiple
attributes by separating them with a comma.
Though technically I guess I am "reading" the property, and then setting a property on it, so I'm technically not setting the actual readonly property pointer.
Exactly. It is not the object that is read-only, but your property which stores a reference to the object. You cannot change which object the property references, but you can call methods and properties on that object which alter its state.
What you are doing is perfectly correct and normal.