2013-05-16 4 views
0

Я могу добавить текст к моим UITableView, но когда я пытаюсь добавить к detailTextLabel определенной строке, которая используется, чтобы быть NSDate, приложение завершает работу и говорит:Не удается отобразить NSString в detailTextLabel

'NSInvalidArgumentException', reason: '-[__NSDate isEqualToString:]: 
unrecognized selector sent to instance 0x8383690' 

я могу добавьте обычный манекен NSString в detailTextLabel, так что я не понимаю его. Любая помощь?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 


    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 


    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    } 


    NSString* temp = [biggerDateA objectAtIndex:indexPath.row]; 


    cell.textLabel.text = [bigA objectAtIndex:indexPath.row]; 
    //cell.detailTextLabel.text = [biggerDateA objectAtIndex:indexPath.row]; 
    //cell.detailTextLabel.text = @"Date Goes here"; 
    cell.detailTextLabel.text = temp; 

    [bigA retain]; 
    //[biggerDateA retain]; 
    return cell; 
} 
+1

«Строка, которая раньше была NSDate»? Что вы имеете в виду? – DrummerB

+0

Какие объекты 'bigDateA' удерживают? Похож на объекты NSDate. И, конечно, вы не можете установить свойство 'text' в дату. – DrummerB

+0

Вы уверены, что 'some string' имеет тип' string'? –

ответ

4

Проблема эта линия:

NSString* temp = [biggerDateA objectAtIndex:indexPath.row]; 

Даже если вы объявить это NSString, важно то, что это является. И что это такое, это NSDate.

Вам нужно, чтобы это было NSString, но тогда вы должны его явно преобразовать, возможно, пройдя через NSDateFormatter.

+0

спасибо !!! Вот и все. –

+0

@ ZachLucas Пожалуйста, отметьте ответ мата или майанка как правильный. Благодарю. –

2

Попробуйте использовать следующий код путем преобразования в NSDate на номер NSString.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    } 
    NSDate* date = [biggerDateA objectAtIndex:indexPath.row]; 
    NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
    [format setDateFormat:@"MMM dd, yyyy HH:mm"]; 
    NSString *temp = [format date]; 
    cell.textLabel.text = [bigA objectAtIndex:indexPath.row]; 
    cell.detailTextLabel.text = temp; 
    [bigA retain]; 
    //[biggerDateA retain]; 
    return cell; 
} 
Смежные вопросы