У меня проблема, когда я ничего не использую, кроме NSMutableDictionaries
, но где-то в сохранении/вытягивании данных из Core Data
он превращается в NSDictionary
, который я не могу редактировать. Вот код:iOS Несовместимые типы указателей (NSMutableDictionary from NSDictionary)
Вид контроллера
@property NSMutableDictionary *myDictionary;
@synthesize myDictionary;
myDictionary = [NSMutableDictionary new];
//Pull dictionary data in IBAction from somewhere else
APPOtherViewController *source = [segue sourceViewController];
myDictionary = source.otherDictionary; //other dictionary is also NSMutableDictionary
//On a button press, I save this dictionary to a Core Data transformable attribute (using MR_shorthand):
APPMyObject *newObject = [APPMyObject createEntity];
newObject.coreDictionary = myDictionary;
[[NSManagedObjectContext defaultContext]saveToPersistentStoreAndWait];
я тогда вытащить CD объект в новом контроллере представления на основе множества атрибутов ...
ViewControllerB
@property NSMutableDictionary *myDictionary;
@synthesize myDictionary;
myDictionary = [NSMutableDictionary new];
APPMyObject *details = [APPMyObject findFirstByAttribute:@"myName" withValue:myName];
myDictionary = details.coreDictionary;
Предупреждение появляется на самой последней строке: «Несовместимые типы указателей, назначаемые« NSMutableDictionary
'от' NSDictionary
'. Все компилируется и работает нормально, но предупреждение существует не просто так.
Простите меня, если это фундаментальное знание, но почему сохранение словаря до Core Data
изменить его с изменчивого на неизменяемое? Если я все изменил до NSDictionary
, он отлично работает, но тогда я не могу редактировать информацию и переписывать.
Спасибо!
NSMutableDictionary * myDictionary ;; myDictionary = [myDictionary initWithDictionary: подробности.coreDictionary] –
myDictionary = (NSMutableDictionary *) подробности.coreDictionary; используйте это, он позаботится о предупреждении – amar