Objective-C存取器声明(只读,可读写等)

17
在书籍“Cocoa Design Patterns”中,作者有时会在@interface中将属性声明为readonly。
// .h
@property (readonly, copy) NSArray *shapesInOrderBackToFront;

然后稍后在实现文件(.m)中添加一个未命名的类别,如下所示:

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

有什么想法吗?我不清楚这种方法比最初将属性声明为“readwrite”更好或更必要的原因。

1个回答

40

在外部,该属性将是只读的。而在类内部,它将具有访问器和设置器。

编译器在实现(.m)文件之外无法看到该属性的设置器。


1
如果上面的一切都相同,但是MYShapeEditorDocument被扩展为MYShapeEditorDocumentExtended,那么MYShapeEditorDocumentExtended是否仍然具有相同的外部只读访问和内部可读写访问权限? - jdog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接