博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 处理方法中的可变參数
阅读量:5770 次
发布时间:2019-06-18

本文共 1643 字,大约阅读时间需要 5 分钟。

## iOS 处理方法中的可变參数

      近期写了一个自己定义的对话框的demo,想模仿系统的UIAlertView的实现方式。对处理可变參数的时候,遇到了小问题,于是谷歌了一下。写下了处理问题的方法。记录下来,以备后需。


代码实现

- (instancetype)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... {    if (self = [super init]) {        self.title = title;        self.delegate = delegate;        self.frame = CYScreen.bounds;        // 获取可变參数的值        if (![self isBlankString:cancelButtonTitle]) {            [self.buttonTitles addObject:cancelButtonTitle];        }        NSString *str;        va_list list;        if(otherButtonTitles)        {            // 1.取得第一个參数的值            CYLog(@"%@", otherButtonTitles);            [self.buttonTitles addObject:otherButtonTitles];            // 2.从第2个參数開始。依此取得全部參数的值            va_start(list, otherButtonTitles);            while ((str = va_arg(list, NSString *))){                CYLog(@"%@", str);                [self.buttonTitles addObject:str];            }            va_end(list);        }        CYLog(@"%@", self.buttonTitles);    }    return self;}

方法调用

- (IBAction)showDialog {    CYAlertView *alert = [[CYAlertView alloc]initWithTitle:@"我的提示" message:@"消息正文" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", @"XXX", @"YYY", nil];    alert.containerView = [self createDemoView];    [alert show];}

打印结果

2015-07-06 15:54:26.422 CYCustomAlertView[358:42937] 确定2015-07-06 15:54:26.424 CYCustomAlertView[358:42937] XXX2015-07-06 15:54:26.424 CYCustomAlertView[358:42937] YYY2015-07-06 15:54:26.425 CYCustomAlertView[358:42937] (    取消,    确定,    XXX,    YYY,)

转载地址:http://idiux.baihongyu.com/

你可能感兴趣的文章
用Perl编写Apache模块续二 - SVN动态鉴权实现SVNAuth 禅道版
查看>>
Android 阴影,圆形的Button
查看>>
C++概述
查看>>
卡特兰数
查看>>
006_mac osx 应用跨屏幕
查看>>
nginx中配置文件的讲解
查看>>
MindNode使用
查看>>
SQL Server 2016 Alwayson新增功能
查看>>
HTTP库Axios
查看>>
CentOS7下安装python-pip
查看>>
认知计算 Cognitive Computing
查看>>
左手坐标系和右手坐标系 ZZ
查看>>
陀螺仪主要性能指标
查看>>
Java 架构师眼中的 HTTP 协议
查看>>
Linux 目录结构和常用命令
查看>>
Linux内存管理之mmap详解 (可用于android底层内存调试)
查看>>
利润表(年末)未分配利润公式备份
查看>>
Android开发中ViewStub的应用方法
查看>>
gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法...
查看>>
HDOJ-2069Coin Change(母函数加强)
查看>>