有一方法如下:
+(void)initWithArguments:(NSString*)title withMessage:(NSString*)message delegate:(id)sender buttonName:(NSString*)btnName buttonNames:(NSString*)other, ...{
UIAlertView *alter=[[UIAlertView alloc] initWithTitle:title
message:message
delegate:sender
cancelButtonTitle:btnName
otherButtonTitles:(这里的参数该写么写?),nil];
[alter show];
[alter release];
}
==========
希望达人解答???对于达人来说应该很简单吧
+(void)initWithArguments:(NSString*)title withMessage:(NSString*)message delegate:(id)sender buttonName:(NSString*)btnName buttonNames:(NSString*)other, ...{
UIAlertView *alter=[[UIAlertView alloc] initWithTitle:title
message:message
delegate:sender
cancelButtonTitle:btnName
otherButtonTitles:(这里的参数该写么写?),nil];
[alter show];
[alter release];
}
==========
希望达人解答???对于达人来说应该很简单吧
不太明白仁兄的意思?
(NSString*)other, ...还是不明白这里怎么组合
NSArray *answerArray = [NSArray arrayWithObjects:@“1”, @“2”, @“3”, nil];//这样也可NSArray *answerArray = [NSArray arrayWithObjects:@“1”, nil];//这样也可UIAlertView *alter=[[UIAlertView alloc] initWithTitle:title
message:message
delegate:sender
cancelButtonTitle:btnName
otherButtonTitles:(所以这里可以写1个,也可以写多个,也可以不写,当然不写的话nil前面的逗号要去掉),nil];
[alter show];
[alter release];
}
我的意思是我写的那个方法传递的NSString*)other, ...这个参数如果我直接写成
otherButtonTitles:other,nil//那么只会有一个参数
otherButtonTitles:other,...,nil//试过这么写会有错
-(void)alterShow(NSString*)other, ...{
UIAlertView *alter=[[UIAlertView alloc] initWithTitle:@"提示"
message:nil
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:(这里的other,...参数怎么转变成@"a",@"b",nil这样的写法)];
[alter show];
[alter release];
}
也就是说当调用[self alterShow:@"aa",@"bb",nil];时
otherButtonTitles:(这里的other,...接收的参数怎么转变成@"aa",@"bb",nil这样的写法)
我知道可以这样用:
va_list va_Average;
NSString *str;
va_start(va_Average,other);//va_start 第二个参数为... 的前一个参数
while (other) {
str = va_arg(params, NSString *);
//do something...//可以将title们放到一个array里去。
else break;
}
va_end(va_Average);然后,用UIAlertView的 - (NSInteger)addButtonWithTitle:(NSString *)title 这个方法,依次加上去好了。