iOS: usando @private para ocultar las properties de establecerlas

Estoy escribiendo una class que tiene un grupo de properties que quiero usar solo internamente. Lo que significa que no quiero que un usuario pueda acceder a ellos cuando han creado mi class. Esto es lo que tengo en mi .h pero aún no oculta los del menu autocompletado (haciendo clic en escaping para ver la list) en XCode:

@interface Lines : UIView { UIColor *lineColor; CGFloat lineWidth; @private NSMutableArray *data; NSMutableArray *computedData; CGRect originalFrame; UIBezierPath *linePath; float point; float xCount; } @property (nonatomic, retain) UIColor *lineColor; @property (nonatomic) CGFloat lineWidth; @property (nonatomic) CGRect originalFrame; @property (nonatomic, retain) UIBezierPath *linePath; @property (nonatomic) float point; @property (nonatomic) float xCount; @property (nonatomic, retain) NSMutableArray *data; @property (nonatomic, retain) NSMutableArray *computedData; 

Pensé que usar @private era lo que necesitaba, pero tal vez lo haya hecho mal. ¿Hay que hacer algo también en mi .m?

@private solo afecta ivars. No afecta las properties. Si quiere evitar hacer públicas las properties, colóquelas en una extensión de class. En su file .m, en la parte superior, coloque algo como

 @interface Lines () @property (nonatomic) CGRect originalFrame; // etc. @end 

Esto parece una categoría, excepto que la categoría "nombre" está en blanco. Se llama una extensión de class y el comstackdor lo trata como si fuera parte del bloque @interface original. Pero como está en el file .m, solo es visible para codificar en ese file .m, y el código externo solo puede ver las properties públicas que se declaran en el encabezado.