Похоже, что [FRRPreferencesController syncViewWithTempModel] - это ваш метод, который вызывает [self.modesTable selectRowIndexes: indexSet byExtendingSelection: NO].Затем табличное представление покорно меняет свой выбор.
Также представляется, что ваш объект FRRPreferencesController является наблюдателем уведомления, опубликованного табличным представлением, когда его выбор изменяется.Это, в свою очередь, вызывает - [FRRMode saveToUserDefaults], которое вызывает - [FRRMode saveObject: named:] и пытается изменить неизменяемый словарь.
Из имени saveToUserDefaults, мне интересно, захватываете ли вытипизированное из словаря значение из NSUserDefaults и затем пытается изменить его.NSUserDefaults не хранит и не возвращает изменяемые коллекции, даже если вы передаете изменяемую коллекцию в ее -setObject: forKey :.Когда вы позже получите его, вы получите неизменную копию.