You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

选中DownPicker选项时,如何获取NSMutableArray索引值以匹配对应代码?

解决DownPicker选中选项时获取数组索引的问题

嗨,这事儿好办!要拿到选中项的索引来匹配对应的国家代码,你只需要利用DownPicker的代理方法就行,具体步骤如下:

1. 遵守DownPicker代理协议

首先在你的ViewController头文件里声明遵守DownPickerDelegate协议:

@interface YourViewController : UIViewController <DownPickerDelegate>

2. 设置DownPicker的代理

在viewDidLoad里,给你的DownPicker实例设置代理(假设你的DownPicker叫countryDownPicker):

- (void)viewDidLoad {
    [super viewDidLoad];
    // 初始化数组(你已有的代码)
    countryMArray = [[NSMutableArray alloc] init];
    codeMArray = [[NSMutableArray alloc] init];
    
    // 假设这里已经填充了国家和代码数据,比如:
    [countryMArray addObjectsFromArray:@[@"中国", @"美国", @"日本"]];
    [codeMArray addObjectsFromArray:@[@"CN", @"US", @"JP"]];
    
    // 初始化DownPicker并设置代理
    countryDownPicker = [[DownPicker alloc] initWithTextField:yourTextField options:countryMArray];
    countryDownPicker.delegate = self; // 关键:设置代理
}

3. 实现代理方法获取选中索引

实现DownPickerDelegate的downPicker:didSelectRow:方法,这个方法会返回选中项的行号(也就是数组的索引),你直接用这个索引去codeMArray里取对应的代码就行:

- (void)downPicker:(DownPicker *)downPicker didSelectRow:(NSInteger)row {
    // row就是选中项在countryMArray里的索引
    NSString *selectedCode = codeMArray[row];
    NSLog(@"选中的国家代码是:%@", selectedCode);
    
    // 这里可以把代码用在你需要的地方,比如赋值给变量、展示到界面等
}

这样一来,用户每次选择国家时,你就能通过返回的row索引精准匹配到对应的代码啦!

内容的提问来源于stack exchange,提问作者Hanz Cheah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:36:20