Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Ios 应用程序在没有stacktrace的情况下在带有textfield的pickerview上崩溃_Ios_Delegates_Uipickerview_Textfield - Fatal编程技术网

Ios 应用程序在没有stacktrace的情况下在带有textfield的pickerview上崩溃

Ios 应用程序在没有stacktrace的情况下在带有textfield的pickerview上崩溃,ios,delegates,uipickerview,textfield,Ios,Delegates,Uipickerview,Textfield,当我试图编辑文本字段时,我仍在努力获取UIPickerview,但现在我的应用程序崩溃了,没有任何stacktrace。它不显示堆栈跟踪,只显示通常的((lldb)),然后什么也不显示 #import "TestViewController.h" #import "FindClasses.h" @interface TestViewController () @property UIPickerView *picker; @property NSArray *pickerArray; @pro

当我试图编辑文本字段时,我仍在努力获取UIPickerview,但现在我的应用程序崩溃了,没有任何stacktrace。它不显示堆栈跟踪,只显示通常的((lldb)),然后什么也不显示

#import "TestViewController.h"
#import "FindClasses.h"

@interface TestViewController ()
@property UIPickerView *picker;
@property NSArray *pickerArray;
@property (nonatomic, strong) FindClasses *finder;
@end

@implementation TestViewController

@synthesize finder = _finder;

- (FindClasses *)finder
{
    if (!_finder) _finder = [[FindClasses alloc] init];
    return _finder;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    self.pickerArray = [self.finder findClassesInTimetable];

    self.classField.delegate = self;
    self.picker = [[UIPickerView alloc] init];
    self.picker.delegate = self;
    self.picker.dataSource = self;
    self.classField.inputView = self.picker;
    // Do any additional setup after loading the view.
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField  {
    [textField becomeFirstResponder];
    return YES;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    return YES;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - UIPickerView method implementation

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 1;
}


-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return self.pickerArray.count;
}


-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    return [self.pickerArray objectAtIndex:row];
}
有人知道为什么它一直发生吗?
谢谢。

我遇到了类似的问题,通过包含此代码得到了解决

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
[self. textField resignFirstResponder]; //Once the user clicks return field on number pad, it resignsfirstresponder "textField"
double delayInSeconds = 0.3; //set delaytimer to .3 seconds
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); //Set pop time
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ [self openPickerView]; }); //open pickerview after .3 sec time delay
return YES; //BOOL function hence return either true or false. In this case, it is true.
}

- (void)openPickerView
{
[UIView beginAnimations:nil context:nil]; //Begin animation set to nil
[UIView setAnimationDuration:0.3]; //Animation duration in 0.3 sec
pickerViewContainer.frame=CGRectMake(0, 200, 320, 261); //Open picker view with the mentioned x axis,y axis, width,height details
[UIView commitAnimations]; //Commit animation
}

尝试启用zombie对象,并查看您是否正在尝试访问解除分配的实例。刚刚发生在我身上。是什么让你认为应用程序崩溃了?请发布一张你当时在Xcode中看到的屏幕截图。更可能的是代码处于循环中。标题:应用程序崩溃而没有在pickerview上使用textfield的stacktrace。然而,我认为@vojer是对的,关于你的文本字段应该开始:试着评论一下becomeFirstResponder