– : сообщение, отправленное на освобожденный экземпляр

Я передал значение NSArray обратно в родительское представление с помощью делегата.

он получен в родительском представлении таким образом

- (void) setManufactureSearchFields:(NSArray *)arrayValues withIndexPath:(NSIndexPath *)myIndexPath { manufactureSearchObjectString = [arrayValues valueForKey:@"MANUFACTURER"]; NSLog(@"%@",[arrayValues valueForKey:@"MANUFACTURER"]); manufactureResultIndexPath = myIndexPath; [self.tableView reloadData]; //reloads the tabels so you can see the value in the tableViewCell. } 

Если бы я должен был выполнить этот код и выбрать столбец childview, он, очевидно, выполняет делегат, но затем зависает и запускает эту ошибку в журнал

 2011-10-31 14:06:16.670 code[12610:207] ( "Alfa Romeo" ) 2011-10-31 14:06:16.673 code[12610:207] *** -[__NSArrayI isEqualToString:]: message sent to deallocated instance 0x6859280 

Однако, если я прокомментирую следующую строку в методе делегата

  - (void) setManufactureSearchFields:(NSArray *)arrayValues withIndexPath:(NSIndexPath *)myIndexPath { //manufactureSearchObjectString = [arrayValues valueForKey:@"MANUFACTURER"]; NSLog(@"%@",[arrayValues valueForKey:@"MANUFACTURER"]); manufactureResultIndexPath = myIndexPath; [self.tableView reloadData]; //reloads the tabels so you can see the value in the tableViewCell. } 

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

 2011-10-31 14:09:28.200 code[12737:207] ( Sony ) 

Я надеюсь, что кто-то раньше испытывал такую ​​проблему, это то, что выглядит мой объект массива, его словарь значений.

 ISELECT = F; ISALIVE = T; MANUFACTURER = Sony; MANUFACTURERID = 3; 

3 Solutions collect form web for “– : сообщение, отправленное на освобожденный экземпляр”

valueForKey: возвращает экземпляр с автореализацией. Если вы не сохраните его, вы можете ожидать, что он будет освобожден после того, как вы вернетесь из текущего метода. Похоже, вы назначаете его переменной экземпляра. Если вы это сделаете, вам нужно сохранить его.

 manufactureSearchObjectString = [arrayValues valueForKey:@"MANUFACTURER"]; [manufactureSearchObjectString retain]; 

Но похоже, что у вас есть еще одна проблема.

 [arrayValues valueForKey:@"MANUFACTURER"]; 

Это возвращает массив.

 manufactureSearchObjectString = [arrayValues valueForKey:@"MANUFACTURER"]; 

По имени вашей переменной выглядит так, как будто вы назначаете ее строковой переменной. Поэтому, если вы исправите проблему сохранения, у вас будет другая ошибка. При попытке вызвать isEqualToString на него вы получите нераспознанный селектор.

Вам нужно назначить строковое значение для изготовленияSearchObjectString. Вам нужно выяснить, какое строковое значение вы хотите. В этом случае у вас есть только одна строка в вашем массиве, поэтому, я думаю, вы этого хотите. В таком случае

 manufactureSearchObjectString = [[arrayValues valueForKey:@"MANUFACTURER"] objectAtIndex:0]; [manufactureSearchObjectString retain]; 

Но в целом вам нужно проверить, есть ли в массиве несколько значений, и решить, какой из них вы хотите, а также проверить, нет ли значений в массиве и что-то сделать правильно.

Попробуйте изменить код:

 - (void) setManufactureSearchFields:(NSDictionary *)arrayValues withIndexPath:(NSIndexPath *)myIndexPath { manufactureSearchObjectString = [[arrayValues valueForKey:@"MANUFACTURER"] copy]; NSLog(@"%@",[arrayValues valueForKey:@"MANUFACTURER"]); manufactureResultIndexPath = myIndexPath; [self.tableView reloadData]; //reloads the tabels so you can see the value in the tableViewCell. } 

Обратите внимание, что я также изменил тип переменной arrayValues на NSDictionary . Дайте мне знать, если это сработает для вас.

конвертируйте его в NSString.

  NSString *manufact=[NSString stringWithFormat:@"%@",[arrayValues valueForKey:@"MANUFACTURER"]; 

Он не потерпит краха.

  • Экран «Вид таблицы» выделяется, когда пользователь салфетки
  • Как выровнять текст центральной ячейки в Iphone?
  • Swift tableView медленное и прокручиваемое отставание
  • iOS7 Предупреждение NSKeyedArchiver: замена существующего значения для ключа «UITintColor»; вероятное дублирование ключей кодирования в иерархии классов
  • Логика для UITableViewCellAccessoryCheckmark
  • UIRefreshControl - beginRefreshing не работает, когда UITableViewController находится внутри UINavigationController
  • Показывать tableView popover, как только данные загружаются
  • iOS 7+ UITableView с 3 различными прототипными ячейками различной высоты
  • Анимация при вставке большей строки в UITableView, предполагающая неправильную высоту
  • Странное поведение метода UITableView "indexPathForRowAtPoint:"
  • Параметры редактирования исчезли при перезагрузке tableview ios 8
  • Interesting Posts

    Понимание отчета о сбоях (Частичное применение …) в Swift

    просмотр коллекции внутри таблицы данных перезагрузки ячейки

    iOS: проверка удаленных обновлений файлов

    iOS 8, Xcode 6 оттенок оттенка

    UIPageViewController не показывает точки

    Ошибка установки установки Pod в версиях cocoapods версии 1.0.0.b.1

    Масштабирование UIImageView в соответствии с шириной с помощью AutoLayout

    Как разбирать файл m3u с помощью AVPlayer

    медленное замедление звука, например, функциональность камеры Slo-Mo по умолчанию с использованием 240FPS

    Apple Push Notification Collapse Key Equivalent

    Что такое долгосрочный метод, который я могу использовать для уникальной идентификации устройства iOS?

    Предотвращение захвата экрана в приложении iOS

    Доступ к обрезанным или отредактированным изображениям с использованием ALAssetsLibrary

    Отсканируйте изображение так, чтобы ширина была вдвое меньше размера экрана

    Новое реагирование на собственное приложение не работает на run-ios xcode 8.3

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.