iOS时@property应该在.h和.m时

use*_*188 3 xcode ios

我知道可供其他类调用的方法应该在头文件中.但是当@property应该在头文件中并且应该在实现文件中时,我有点困惑.

你如何做出这个决定,它有什么不同?

Cam*_*mer 6

您希望公开暴露给其他类的任何属性都在.h文件中."私有"属性(双关语)将在匿名类别或类扩展中的实现文件中.例如,您也可以将属性的.h版本作为readonly,并且.m版本可以读取.

具有在专用类别中定义的属性的实现文件

@interface CPClassFileName ()
@property (nonatomic, retain) NSString *string;
@end



@implementation
...
@end
Run Code Online (Sandbox Code Playgroud)

  • 这在技术上是[类扩展](http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-SW2 )不是私人类别.一个重要的区别是类扩展中定义的方法_required_将在类@implementation块中定义.在这种情况下,类扩展是正确的选择. (4认同)