Конвертировать любой тип данных в NSData и обратно

Я работаю над приложением, в котором вы можете отправить текст, изображение или контакт через Multipeer Connectivity на другое устройство. Затем он сохранит данные ядра второго устройства.

Что я делаю, так это отправляю данные как NSDictionary и снова конвертирую их. Так что я остался с NSDictionary на приемном устройстве. Как тогда я могу сохранить объект для ключа @ "objectData" в Core Data?

Я бы хотел, чтобы он работал с NSString, UIImage & ABPerson.

    // Create a new object in the managed object context.
    Received *receivedData = [NSEntityDescription insertNewObjectForEntityForName:@"Received" inManagedObjectContext:self.managedObjectContext];
    // Assign the properties based on what was input in the textfields.

    // Check what type it is
    NSString *dataType = [dictionary objectForKey:@"type"];
    receivedData.type =  dataType;

    // Determine what type of data was passed over...

    if ([dataType isEqualToString:@"Photo"])
    {
        receivedData.object = UIImageJPEGRepresentation([dictionary 
                                                         objectForKey:@"object"], 0.5f);

        NSLog(@"A photo saved in core data");
    }
    else  
    { 

      //receivedData.object = [NSKeyedArchiver archivedDataWithRootObject:[dictionary objectForKey:@"object"]];
      receivedData.object = [[dictionary objectForKey:@"object"] dataUsingEncoding:NSUTF8StringEncoding];

    }

    // Save the managed object context.
    NSError *error = nil;
    [self.managedObjectContext save:&error];

Я не особенно хочу делать операторы if, else if, чтобы определить, как преобразовать эти основные данные, как это будет повторяться при отображении данных. Мотыга еще я могу это сделать? В настоящее время я получаю ошибки с типом NSKeyedArchiver, который я не уверен, почему, и, следовательно, он закомментирован.

Любая помощь приветствуется!

Ответы на вопрос(1)

Ваш ответ на вопрос