2013-08-09 6 views
0

Я сделал несколько перечислений, чтобы сохранить фотографию, которую пользователь взял, которая отображается в UIImage. Однако я не знаю, как сохранить и отобразить изображение, которое отображается в UIImage. Я также хочу, чтобы пользователь выбирал, какое перечисление он хочет сохранить, чтобы я мог сортировать изображения в жанре. Я просто хочу иметь отправную точку, и теперь я застрял.Сохранение UIImage и сохранение в enum CoreData

-(void)setLabelTextForCategory:(MyFoodCategory)category 
{ 
    switch(category) { 
     case MyFoodCategoryVegetable: 
      self.categoryLabel.text = @"V"; 
      break; 
     case MyFoodCategoryMeat: 
      self.categoryLabel.text = @"M"; 
      break; 
     case MyFoodCategoryFish: 
      self.categoryLabel.text = @"P"; 
      break; 
     case MyFoodCategorySweet: 
      self.categoryLabel.text = @"D"; 
      break; 
    } 
} 
+0

Я все еще не понимаю, что именно вы хотите. – geekchic

+0

Я хочу, чтобы пользователь взял фотографию в приложении, а затем выберите, какую категорию он хочет сохранить фотографию, которую он взял, используя представление выбора, а затем нажмите кнопку сохранения, которую я еще не сделал. Я хочу, чтобы пользователь сортировал фотографию, которую он взял. Пользователь может выбрать категорию с главного экрана в приложении и посмотреть фотографии, которые он сортировал. – Shouri

ответ

0

Итак, скажем, у вас есть объект изображения в вашей модели данных ядра. Этот объект будет иметь в вашем случае как минимум два атрибута: imageData и жанр. imageData имеет тип NSData, а жанр имеет тип Integer64, который, будучи внесенным в свойство при создании ваших классов, будет NSNumber. Итак, попросите вашего пользователя выбрать образ и жанр. Затем вы можете сохранить, как это:

Image *theSavedImage = [NSEntityDescription insertNewObjectForEntityForName:@"Image" 
                 inManagedObjectContext:myContext]; 
    theSavedImage.imageData = UIImageJpegRepresentation(mySelectedImage, 1.0); 
    theSavedImage.genre = [NSNumber numberWithInt:mySelectedGenre]; 
    NSError *error = nil; 
    [myContext save:&error]; 

Кроме того, если вы посмотрите вокруг на Google, вы увидите, что есть некоторые дебаты относительно того, является ли хранить изображения непосредственно в Core Data мудр. Это можно сделать, конечно. Но некоторые люди рекомендуют хранить URL-адрес файла в качестве атрибута на управляемом объекте и записывать данные изображения в файловую систему.

Редактировать в ответ на комментарий:

ImageData атрибут должен быть двоичным, а не жанр. Жанр должен быть Integer64. В сгенерированном заголовке это будут свойства типов NSData и NSNumber соответственно. Атрибут NSNumber (жанр) - это то, что вы сохраните выбранное значение enum, используя [NSNumber numberWithInt:mySelectedGenre];. Выбор жанра должен быть отдельным шагом, так как UIImagePickerController предназначен для использования как есть и не предоставляет пользователю возможность делать ничего, кроме выбора изображения, в основном.

+0

У меня сейчас нет жанра типа NSData, вы имеете в виду Binary? Это работает с перечислением, которое я создал, которое я присвоил номерам? И смогу ли я сделать, чтобы пользователь выбирал, какой жанр нужно сохранить, используя контроллер выбора? – Shouri

Смежные вопросы