I want two cells to log in (User and password). So I run the app, everything is ok but when I click in the UITextField “playerTextField” the program received this signal: “EXC_BAD_ACCESS”. 🙁
Do u know why? I’ve tried and read a lot of different ways and it’s like this one how I’am closer to get it.
My code:
To disappear the keyboard if the button Next/Done is pushed.
- (BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
My UITextFields inside the cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *kCellIdentifier = @"kCellIdentifier";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:kCellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryNone;
if ([indexPath section] == 0) {
playerTextField = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)];
playerTextField.adjustsFontSizeToFitWidth = YES;
playerTextField.textColor = [UIColor blackColor];
if ([indexPath row] == 0) {
playerTextField.placeholder = @"ejemplo@gmail.com";
playerTextField.keyboardType = UIKeyboardTypeEmailAddress;
playerTextField.returnKeyType = UIReturnKeyNext;
playerTextField.delegate = self;
}
else {
playerTextField.placeholder = @"Requerida";
playerTextField.keyboardType = UIKeyboardTypeDefault;
playerTextField.returnKeyType = UIReturnKeyDone;
playerTextField.secureTextEntry = YES;
playerTextField.delegate = self;
}
playerTextField.backgroundColor = [UIColor whiteColor];
playerTextField.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
playerTextField.autocapitalizationType = UITextAutocapitalizationTypeNone; // no auto capitalization support
playerTextField.textAlignment = UITextAlignmentLeft;
playerTextField.tag = 0;
playerTextField.clearButtonMode = UITextFieldViewModeNever; // no clear 'x' button to the right
[playerTextField setEnabled: YES];
//cell.textLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20.0];
cell.textLabel.font = [UIFont fontWithName:@"Futura" size:16.0];
cell.textLabel.textColor = [UIColor darkGrayColor];
cell.textLabel.shadowOffset = CGSizeMake(0.5, 0.5);
cell.textLabel.shadowColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:10];
[cell.contentView addSubview:playerTextField];
//[playerTextField release];
}
}
if ([indexPath section] == 0) { // Email & Password Section
if ([indexPath row] == 0) { // Email
cell.textLabel.text = @"Email";
}
else {
cell.textLabel.text = @"Contraseña";
}
}
else { // Login button section
cell.textLabel.text = @"Log in";
}
return cell;
}
“EXC_BAD_ACCESS” errors occur when you try to access an object which has been deallocated. This means, somewhere, the last retained reference to your UITextField is released.
I don’t see anything in the visible code which would cause such a problem.
Instruments should help you figure out where the problem occurs. There is an instruments called ‘Zombies’ which is designed for exactly this purpose. When you reach a EXC_BAD_ACCESS it will show you every place in your code where that object was retained and released. From there you can figure out where you released too many times (or maybe forgot to retain it).