Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 按钮操作崩溃的选择器视图_Iphone_Uipickerview_Ibaction - Fatal编程技术网

Iphone 按钮操作崩溃的选择器视图

Iphone 按钮操作崩溃的选择器视图,iphone,uipickerview,ibaction,Iphone,Uipickerview,Ibaction,我有一个选取器视图,当选取选取器视图的行组件时,它会导航到一个视图,在那里我有一个按钮变更组。单击按钮时,选取器视图必须出现,但不会出现!它崩溃了 这是我的密码: - (void)viewDidLoad { groupArr = [[[NSMutableArray alloc]initWithObjects:@"Family",@"Friends",@"Office",@"Acquaintances", nil]autorelease]; agrpPicker.hidden = YES

我有一个选取器视图,当选取选取器视图的行组件时,它会导航到一个视图,在那里我有一个按钮变更组。单击按钮时,选取器视图必须出现,但不会出现!它崩溃了

这是我的密码:

- (void)viewDidLoad
{
groupArr = [[[NSMutableArray alloc]initWithObjects:@"Family",@"Friends",@"Office",@"Acquaintances", nil]autorelease];
    agrpPicker.hidden  = YES;
}

#pragma mark-
#pragma mark PickerView Datasource

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    int number = 0;

    if (agrpPicker.hidden == NO) 
    {
        number = 1;
    }

    return number;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    int count = 0;
    if (agrpPicker.hidden == NO) 
    {
        count = [self.groupArr count];
    }
    return count;
}

#pragma mark-
#pragma mark PickerView Delegate

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    NSString *str = [[[NSString alloc]init]autorelease];

    if (agrpPicker.hidden == NO) 
    {
        str = [self.groupArr objectAtIndex:row];
    }

    return str;
}
这是显示选择器视图的按钮的操作:

-(IBAction)groupButtonSelceted:(id)sender
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.6];
    CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, 200);
    agrpPicker.transform = transfrom;
    [UIView commitAnimations];
    agrpPicker.hidden = [agrpPicker isHidden] ? NO : YES;
    [self.view addSubview:agrpPicker];
}
已将该选择器视图连接到IB中的选择器视图

这是它坠毁地点的屏幕截图

在控制台中,消息显示为下面的快照:

有专家能指出我哪里出了错吗

请帮我提出您的宝贵建议,提前谢谢:)

抱歉,伙计们,我发现了错误所在,我没有保留自动释放后的数组,而不是:

groupArr=[[NSMutableArray alloc]initWithObjects:@“家庭”、“朋友”、“办公室”、“熟人”,无]自动释放]

它是self.groupArr=


感谢所有查看和帮助解决此问题的人:)

在.h文件中添加UIPickerViewDeleteGate

在.m文件中,添加PickerView委托和数据源方法。 数据源:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
代表:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;

有关更多详细信息,请参阅Apple提供的。

由于自动释放,您的groupArr阵列正在失去其contant。所以改变这个

groupArr=[[NSMutableArray alloc]initWithObjects:@“家庭”、“朋友”、“办公室”、“熟人”,nil]


[集团保留]

你能把崩溃日志也放在这里吗?@rishi是的,rishi先生,我放了一个快照以清楚地理解,请查看编辑后的答案,提前谢谢:)根据屏幕截图,它看起来像是内存问题,指向未分配的对象。控制台日志上是否也有任何内容?控制台中除了(gdb)之外没有任何内容。Rishi先生,你可以分享你在应用程序中的picker视图代码吗?代码本身有问题。请查看编辑后的问题(帖子),请为我提供解决方案,谢谢你的回答:)谢谢你的回答,但我还是用self.groupArr=[[NSMutableArray alloc]initWithObjects修复了它:@“家庭”,“朋友”,“办公室”,“熟人”,nil];重新加载选择器视图。使用此代码[agrpPicker reloadAllComponents];按上按钮