Skip to Content

示例

俗话说一个示例胜过千言万语,让我们从一个示例开始,让你感受一下风格、间距、命名等方面。

这是一个头文件(Header File)示例,展示了 @interface 声明的正确注释和间距。

// GOOD: #import <Foundation/Foundation.h> @class Bar; /** * 一个展示良好 Objective-C 风格的示例类。所有接口、 * 分类和协议(即:头文件中所有非平凡的顶层声明) * 必须添加注释。注释也必须紧邻其所文档化的对象。 */ @interface Foo : NSObject /** 被持有的 Bar。 */ @property(nonatomic) Bar *bar; /** 当前的绘图属性。 */ @property(nonatomic, copy) NSDictionary<NSString *, NSNumber *> *attributes; /** * 便捷创建方法。 * 关于 @c bar 的详情请参见 -initWithBar:。 * * @param bar 用于 foo 操作的字符串。 * @return 一个 Foo 实例。 */ + (instancetype)fooWithBar:(Bar *)bar; /** * 使用提供的 Bar 实例初始化并返回一个 Foo 对象。 * * @param bar 一个表示某种事物的字符串。 */ - (instancetype)initWithBar:(Bar *)bar NS_DESIGNATED_INITIALIZER; /** * 使用 @c blah 执行某些工作。 * * @param blah * @return 如果工作完成返回 YES;否则返回 NO。 */ - (BOOL)doWorkWithBlah:(NSString *)blah; @end

一个源文件示例,展示了 @implementation 的正确注释和间距。

// GOOD: #import "Shared/Util/Foo.h" @implementation Foo { /** 用于显示 "hi" 的字符串。 */ NSString *_string; } + (instancetype)fooWithBar:(Bar *)bar { return [[self alloc] initWithBar:bar]; } - (instancetype)init { // 具有自定义指定初始化方法的类应始终重写 // 父类的指定初始化方法。 return [self initWithBar:nil]; } - (instancetype)initWithBar:(Bar *)bar { self = [super init]; if (self) { _bar = [bar copy]; _string = [[NSString alloc] initWithFormat:@"hi %d", 3]; _attributes = @{ @"color" : UIColor.blueColor, @"hidden" : @NO }; } return self; } - (BOOL)doWorkWithBlah:(NSString *)blah { // 应在此处完成工作。 return NO; } @end
Last updated on