自定義函數

版權聲明:未經本人允許,禁止轉載.

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無效

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容