我们在使用系统API的时候,只能看到头文件。我们打开头文件,比如NSString.h
找到方法stringWithFormat的定义。发现只是轻描淡写的一句
+ (instancetype)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
但是当我们敲出来 stringWithFormat ,按住command 鼠标点击这个方法的时候却发现有这么多注释
Summary
Returns a string created by using a given format string as a template into which the remaining argument values are substituted.
Declaration
+ (instancetype)stringWithFormat:(NSString *)format, ...;
Discussion
This method invokes initWithFormat:locale:arguments: without applying any localization. This is useful, for example, when working with fixed-format representations of information that is written out and read back in at a later time.
Important
When working with text that’s presented to the user, use the localizedStringWithFormat: method, or the initWithFormat:locale: or initWithFormat:locale:arguments: method, passing currentLocale as the locale.
Parameters
format
A format string. See Formatting String Objects for examples of how to use this method, and String Format Specifiers for a list of format specifiers. This value must not be nil.
Important
Raises an NSInvalidArgumentException if format is nil.
...
A comma-separated list of arguments to substitute into format.
Returns
A string created by using format as a template into which the remaining argument values are substituted without any localization.
这么多的注释来自哪里呢。
起初我也困惑过,后来我想了想,可能来自于m文件,但是m文件我们看不到。
前几天写了一个小工具,
功能是把swagger上面的接口说明自动集成到项目里面,并且加上该有的接口说明,功能很简单,我写了三四个小时。
为了看起来更整洁,我创建了2个文件。h文件保存简介的接口定义。列如
static NSString * const kApiGetSomeThing = @"/get/some/thing"; //过获取一些东西
同名m文件里保存复杂的注释,包括请求方式,参数说明 例如
/**
@brief 查询所有报警类型
@code
请求路径: /get/some/thing
请求方法: get
参数说明:
param1 string 参数1
param2 string 参数2
@endcode
*/
extern NSString * const kApiGetSomeThing;
m文件主要起到一个快速查看注释的作用。 当我们打出kApiGetSomeThing并查看注释的时候,就有快速提示。 聪明的你不妨试试。
今天遇到一个问题。 发现快速提示竟然不好用了, 纠结了几分钟,后来想了一下。 可能是没有把接口.m文件加入到build phrase的compile resource里面
加入之后就正常了。
时间太紧了,就写这些吧 。
最近压力太大了。