Ios 应用程序在没有stacktrace的情况下在带有textfield的pickerview上崩溃
当我试图编辑文本字段时,我仍在努力获取UIPickerview,但现在我的应用程序崩溃了,没有任何stacktrace。它不显示堆栈跟踪,只显示通常的((lldb)),然后什么也不显示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
#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