码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 多个未知参数

时间:2015-04-16 17:33:50      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

- (void)setGradientColor:(UIColor *)beginColor transitionColor:(UIColor *)transitionColor,...NS_REQUIRES_NIL_TERMINATION  ;


// NS_REQUIRES_NIL_TERMINATION, 用于编译时非nil结尾的检查

- (void)setGradientColor:(UIColor *)beginColor transitionColor:(UIColor *)transitionColor, ...{

    [self.gradientColors addObject:(id)beginColor.CGColor];

    // 定义一个指向可选参数列表的指针

    va_list args;

    

    // 获取第一个可选参数的地址,此时参数列表指针指向函数参数列表中的第一个可选参数

    va_start(args, transitionColor);

    

    if(transitionColor)

    {

        [self.gradientColors addObject:(id)transitionColor.CGColor];

        

        // 遍历参数列表中的参数,并使参数列表指针指向参数列表中的下一个参数

        UIColor *nextArg;

        while((nextArg = va_arg(args, UIColor *)))

        {

            [self.gradientColors addObject:(id)nextArg.CGColor];

        }

    }

    // 结束可变参数的获取(清空参数列表)

    va_end(args);

}


 [drawCircleView setGradientColor:[UIColor purpleColor] transitionColor:[UIColor redColor],[UIColor blueColor], nil];

IOS 多个未知参数

标签:

原文地址:http://blog.csdn.net/learnios/article/details/45078045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!