Intereting Posts
MPMoviePlayerViewController выходит после фона Получать результаты локации из другого класса в быстром Как открыть excel, doc из ms-word или ms-excel в iOS Разрешение навигации более чем на 2 вида замена моего элемента detailViewController при сбоях UISplitView при повороте моего приложения Objective-C IOS Swift: обновить навигационную кнопку с текстом «Назад» Как получить данные из нескольких таблиц с использованием данных ядра в Swift.? Множественное расширение службы уведомлений в одном приложении Вызов действия кнопки в модульном тесте в Xcode В каком методе UICollectionViewCell я должен писать код только для запуска? push-уведомление при отправке push-уведомления с сервера MDM в IOS Realm-iOS: ссылка на объект установлена ​​на ноль после сохранения Цель C – когда использовать NSNumber против примитива Удаление приложения с устройства iOS с помощью Push Notification SoundCloud iOS SDK не может найти все файлы заголовков. libSoundCloudUI / CocoaSoundCloudUI

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

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

Я создаю 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 ];