欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义函数

程序员文章站 2022-07-11 15:34:53
...

版权声明:未经本人允许,禁止转载.

1.定义普通函数(一个参数)

由于NSNumber使用不方便,所以自定义函数,如下就可以直接使用Integer(num)函数

//声明
FOUNDATION_EXPORT NSNumber *Integer(NSInteger num);
//实现
NSNumber *Integer(NSInteger num) {
return [NSNumber numberWithInteger:num];
}

宏FOUNDATION_EXPORT 全局声明 大多数情况下等同于extern
NSNumber * 函数返回类型
Integer() 函数名
NSinteger 参数类型
num 实例变量

2.定义可变参函数

类似于NSLog(...)函数,参数个数不确定,如下,从写了stringWithFormat:方法

//声明
FOUNDATION_EXPORT NSString *String(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
//实现
NSString *String(NSString *format, ...) {
    va_list args;
    va_start(args, format);
    NSString *str = [[NSString alloc] initWithFormat:format arguments:args];
    va_end(args);
    return str;
}

va_list args: 定义一个指向个数可变的参数列表指针args
va_start(args, format): 使参数列表指针args指向函数参数列表中的第一个可选参数format
va_arg(args, id): 返回参数列表指针args所指的参数,返回类型为type,并使指针args指向参数列表中下一个参数
va_end(args): 清空参数列表,并置参数指针args无效