[NSCFString objectAtIndex:]: нераспознанный селектор, отправленный экземпляру при использовании nsmutabledictionery - PullRequest
0 голосов
/ 15 декабря 2011
NSDateFormatter *formatter;
    NSString *dateString;
    formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"dd-MM-yyyy HH:mm a"];
    dateString = [formatter stringFromDate:[NSDate date]];
    [formatter release];

    appDelegate.myCallLogDict = [[NSMutableDictionary alloc]init];
    [appDelegate.myCallLogDict setObject:phoneNo forKey:@"CallLogPhoneNoKey"];
    [appDelegate.myCallLogDict setObject:dateString forKey:@"CallLogTimeStampKey"];

Я сохранил номер телефона и время в nsmutabledictionery, и я хочу получить доступ к этому значению словаря, как показано ниже, в -

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath method

cell.detailTextLabel.text = [[appDelegate.myCallLogDict objectForKey:@"CallLogTimeStampKey" ]objectAtIndex:row];
cell.textLabel.text = [[appDelegate.myCallLogDict objectForKey:@"CallLogPhoneNoKey"] objectAtIndex:row];

, когда я запускаю приведенный выше код, я получаю следующую ошибку

Пожалуйста, помогите мне подняться

-[NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x5b227e0
2011-12-15 10:06:09.050 MyDialer[1090:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x5b227e0'

Большое спасибо за вашу помощь

Ответы [ 4 ]

3 голосов
/ 15 декабря 2011

попробуйте это:

cell.detailTextLabel.text = [appDelegate.myCallLogDict objectForKey:@"CallLogTimeStampKey"];
cell.textLabel.text = [appDelegate.myCallLogDict objectForKey:@"CallLogPhoneNoKey"];

вам не нужно использовать objectAtIndex, так как вы получаете одну строку на

[appDelegate.myCallLogDict objectForKey:@"CallLogPhoneNoKey"];
1 голос
/ 07 февраля 2012

В моем случае возникла следующая проблема:

  1. есть свойство @property (nonatomic, retain) NSIndexPath *selectedCell;
  2. , которое синтезируется как @synthesize selectedCell = _selectedCell;
  3. сполучатель

    • (NSIndexPath *) selectedCell {if (! _selectedCell) {_selectedCell = [NSIndexPath indexPathForRow: self.selectedImageNumber inSection: kTexturesListSection];} return _selectedCell;}
  4. , а затем в некоторых местах кода вызов self.selectedCell.row вызвал сбой

После того, как метод get был изменен на

  • (NSIndexPath *) selectedCell {if (! _SelectedCell) {_selectedCell = [[NSIndexPath indexPathForRow: self.selectedImageNumber inSection: kTexturesListSection] сохранить];} return _selectedCell;}

ошибка исчезла.Ошибка была замечена только на iOS 5.

1 голос
/ 15 декабря 2011

Я думаю, вам нужно сохранить данные ключа в массиве, а затем использовать objectAtIndex в этом массиве.

1 голос
/ 15 декабря 2011

Вы ожидаете, что ваш словарь будет содержать массив строк для ключа CallLogTimeStampKey, но вы вставили только одну строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...