Intereting Posts
Воспроизведение аудио с помощью AVAudioPlayer внутри класса NSObject Различные результаты между CurrentViewController и pushViewController Проблема с настройкой UIImage на пользовательский UIButton Изменение текста кнопки «Отмена» в диалоговом окне TouchID по умолчанию Проблемы с производительностью с помощью AVMutableComposition – scaleTimeRange Является ли это сохраненным или авторефератным объектом? Автозаполнение метода Xcode показывает только определенные классы Сбор результатов в NSArray из блока, который находится в цикле while Приложение работает на Simulator, но не на устройстве. Странное сообщение об ошибке? Xcode Как загружать файлы .apk и .ipa программно из ткани или Дженкинса? суффиксы изображений для всех iDevices для дисплеев сетчатки Исправлена ​​ошибка, из-за которой использовалась коакоподы. Добавляет ли интерфейс Builder элементы в контентный просмотр UITableViewCell? Работает на iOS Simulator, но не на iPhone С новыми методами скриншотов iOS 7, один возвращает UIImage без строки состояния, с ним возвращается UIView. Как размыть строку состояния?

«Ошибка непризнанного селектора отправлена ​​в экземпляр»

Я прочитал все ответы «непризнанный селектор, отправленный на экземпляр», но они, похоже, не применимы к моей ситуации.

Я создаю NSMutableDictionary, как это …

NSMutableDictionary *ObjectDynamic = [NSDictionary dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil]; 

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

 [ObjectDynamic setObject:mySprite forKey:@"pSObject"]; 

Но я получаю исключение на этой линии, с …

– [__ NSDictionaryI setObject: forKey:]: непризнанный селектор, отправленный в экземпляр

Невозможно ли добавить другую пару с ключом / значением?

редактировать

Простая ошибка, я просто пытался сделать NSDictionary, а не NSMutableDictionary! Спасибо за ответы в любом случае.

Это потому, что вы инициализируете неизменный NSDictionary, который не имеет setObject:forKey: Инициализируйте измененный вариант:

 NSMutableDictionary *ObjectDynamic = [NSMutableDictionary dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil]; 

Начиная с Xcode 4.4, вы также можете использовать новые словарные литералы, чтобы очень легко инициализировать неизменяемые словари, а затем использовать mutableCopy .

 NSMutableDictionary *objectDynamic = [@{@"pFObject" : pObject, @"tFObject" : tObject} mutableCopy]; 

Обратите внимание, что в Objective-C вам следует начинать имена переменных строчными буквами.

Чтобы иметь возможность изменять содержимое словаря, вам нужно сделать NSMutableDictionary , а не неизменный NSDictionary :

 NSMutableDictionary *ObjectDynamic = [NSMutableDictionary // <<== Here dictionaryWithObjectsAndKeys:pObject, @"pFObject",tObject, @"tFObject",nil ];