美文网首页
iOS哨兵参数&&内联函数

iOS哨兵参数&&内联函数

作者: Fisher123 | 来源:发表于2018-05-22 16:02 被阅读0次

1. iOS传递不定长多个参数

在iOS要实现不定参数的函数,有一个方案是用C/C++中的va_list、va_start、va_arg、va_end来实现。这样实现需要一个哨兵参数,就是调用方法是最后必须要加一个nil或者0的参数,该参数就称为哨兵参数 for example :

- (void)mutableParamList:(NSString *)fistPara, ... {
    va_list arguments;
    id eachObject;
    if (fistPara) {
        NSLog(@"%@",fistPara);
        va_start(arguments, fistPara);
        while ((eachObject = va_arg(arguments, id))) {
        NSLog(@"%@",eachObject);
     }
        va_end(arguments);
    }
}

调用:

[self mutableParamList:@"aaaa",@"bbbb",@"cccc",@"dddd",nil];

2. iOS内联函数使用(关键字 NS_INLINE)

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

NS_INLINE void tipWithMessage(NSString *message) {
    dispatch_async(dispatch_get_main_queue(), ^{
    UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"提示" message:message delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];
    [alerView show];
    [alerView performSelector:@selector(dismissWithClickedButtonIndex:animated:) withObject:@[@0, @1] afterDelay:0.9];        
    });    
}

对于调用也是非常的简单,在-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 方法中,调用弹窗函数:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    tipWithMessage(@"世界, 你好!");
}
效果图

相关文章

  • iOS哨兵参数&&内联函数

    1. iOS传递不定长多个参数 在iOS要实现不定参数的函数,有一个方案是用C/C++中的va_list、va_s...

  • 《C++ Primer Plus》:函数探幽

    本章内容概览 内联函数 引用变量 按引用传递函数参数 默认参数 函数重载 函数模板 内联函数 内联函数是C++为提...

  • 王道程序员求职宝典(十)函数,栈与队列

    函数 参数传递值传递指针传递引用传递指针引用*& 内联函数成员函数内联普通函数内联宏定义 默认参数从右向左设定默认...

  • iOS-inline内联函数

    iOS-inline内联函数

  • Swift函数

    概览函数定义隐式返回返回元组(实现多值返回)函数参数参数标签默认参数值可变参数输入输出参数函数重载内联函数函数类型...

  • kotlin进阶语法

    构造方法 data class == 遍历 6.循环 函数嵌套 函数参数默认值 扩展 内联函数 函数类型参数 by...

  • 《重构》阅读记录

    重新组织函数 提炼函数 内联函数 内联临时变量 引入解释性变量 分解临时变量 移除对参数的赋值 以函数对象替换函数...

  • c++函数特性

    函数重载,参数默认值,内联函数 重载:函数名相同,参数列表不同,作用域相同。 参数默认值:参数默认值必须从最后开始...

  • Kotlin之lambda、inline、扩展函数与匿名函数

    > inline 内联函数及其场景 inline只能提高带有lambda参数的函数的性能 ==好处==: 节约函数...

  • ios 内联函数,与宏的区别以及注意事项

    ios 中内联函数例子有: @property(nonatomic)UIEdgeInsetsscrollIndic...

网友评论

      本文标题:iOS哨兵参数&&内联函数

      本文链接:https://www.haomeiwen.com/subject/kqxkjftx.html