Objective C-使用其中的对象加载 UIPickerview

Posted

技术标签:

【中文标题】Objective C-使用其中的对象加载 UIPickerview【英文标题】:Objective C- Loading a UIPickerview using the objects in it 【发布时间】:2016-01-14 11:59:43 【问题描述】:

我有一个选择器视图,其中包含来自 NSMutableArray 的值

NSMutableArray array=[[NSMutableArray alloc]init];
for(int t=-20 ;t<70;t++)

NSString *string=[NSString stringWithFormat:@"%d",t];
[array addObject:string];


-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
return [array objectAtIndex:row];

我从选择器中选择一个值并将其保存在数据库中。之后,当页面加载时,选择器应该加载保存的值。

我怎样才能实现它?

我已经看到通过像这样传递索引值来访问选定的行

[pickerview selectRow:20 inComponent:0 animated:NO]; 

但在我的情况下,是否有可能获取值的索引?或者还有其他方法吗?

请帮忙

【问题讨论】:

你能在选择器视图中显示数据吗? 是的,我可以显示数据 您可以通过这种方式获取索引:[array indexOfObject: @"your saved value from DB"]。但在选择该行之前检查索引是否不是 NSNotFound 【参考方案1】:

当您的模型将发生变化时,您可以将 indexOfObject 消息发送到数组以获取索引。试试这个

 NSInteger index=[array indexOfObject:@"ObjectYouHave"];

【讨论】:

试过这个 - NSNumber *num=[NSNumber numberWithInteger:[[datafromdb objectForKey@"pickervalue"]integerValue]]; NSInteger index=[数组 indexOfObject:num]; if(NSNotFound==index) NSLog(@"未找到");否则 [pickerview selectedRowInComponent:index];但它总是打印 nslog ,并且数据库具有选择器中存在的值。我哪里出错了?

以上是关于Objective C-使用其中的对象加载 UIPickerview的主要内容,如果未能解决你的问题,请参考以下文章

将 NSArray 对象写入领域数据库 - Objective C

保存/加载自定义对象数组到 plist Objective C

Objective C - 从笔尖加载 UIView?

iPhone Dev Objective-C - 对象被保留,我不知道在哪里

无法访问 XCTestCase Objective C 中的单例对象

如何检查Objective C BOOL变量的真假[关闭]