Question

In the book, "Cocoa Design Patterns," the author sometimes declares a property in the @interface as readonly:

// .h
@property (readonly, copy) NSArray *shapesInOrderBackToFront;

and then later adds an unnamed category to the implementation (.m) file like this:

// .m
@interface MYShapeEditorDocument ()
@property (readwrite, copy) NSArray *shapesInOrderBackToFront;
@end

Any idea as to why? It's unclear to me how this approach is better than, or more necessary than, initially declaring the property as "readwrite".

Was it helpful?

Solution

Externally the property will be readonly. While inside the class it will have both the accessor, and the setter.

The setter will not be visible by the compiler outside of the implementation(.m) file.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top