2013-09-17 5 views
0

У меня есть табличный вид, который используется для нескольких целей. Внутри didselectRowAtIndex делегат Я выделяю NSArray и инициализирую некоторые значения.EXC_ARM_DA_ALIGN при создании массива?

NSArray *param=[[NSArray alloc] initWithObjects:selectedCell.textLabel.text,status,selectedCell.tag, nil];

Но эта линия дает ошибку BAD_ACCESS_code= EXC_ARM_DA_ALIGN. Какова причина этого и как я могу решить эту

`

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     UITableViewCell *selectedCell=[tableView cellForRowAtIndexPath:indexPath]; 
     NSArray *param=[[NSArray alloc] initWithObjects:selectedCell.textLabel.text,status,selectedCell.tag, nil]; 

     if ([self.delegate respondsToSelector:@selector(selectedTableRowAUTOCREATION:)]) { 
      [self.delegate selectedTableRowAUTOCREATION:param]; 
     } 
    } 

`

Благодарности

значение
+0

Вы уверены, что 'selectedCell' и его свойства не' nil'? – Matthias

+2

Как вы вставляете selectCell.tag i.e NSInteger в массив без ошибки компиляции или предупреждения? Если вы используете ARC, то вы обязательно получите сообщение об ошибке «Неявное преобразование NSInteger в id запрещено в ARC». В No-ARC должно быть предупреждение. –

+1

Tnz @Puneet, что было проблемой. Я преобразовал его в NSNumber. Затем он решил. Большое спасибо – iDia

ответ

1

selectedCell.tag «s не является объектом. Вы не можете поместить его в массив.

Если вам нужно отслеживать идентификатор, вам нужно вставить его в NSNumber, выполнив что-то вроде @(selectedCell.tag) - а затем, когда вам нужно получить доступ к значению, вы можете сделать [number integerValue], чтобы получить его.

Смежные вопросы