UIImage не отображается при получении из NSMutableArray - PullRequest
0 голосов
/ 01 июня 2011

Помогите пожалуйста:)

Я установил изменяемый массив следующим образом

- (void)viewDidLoad {
[super viewDidLoad];


NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"TopImage"  inManagedObjectContext:managedObjectContext];
[request setEntity:entity];


NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"topImage" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];


NSError *error = nil;
NSMutableArray *mutableFetchResultsT = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResultsT == nil) {
}

[self setTopImageArray:mutableFetchResultsT];}

И я пытаюсь заполнить UIImageView, используя:

- (void)showPhoto:(NSInteger)numberToAdd
{

[topIV setImage:[topImageArray objectAtIndex:currentPI + numberToAdd]];

}

currentPI - целое число, помечающее текущее изображение в индексе, и число для добавления задается здесь:

- (IBAction)nextTouch
{
[self showPhoto:-1];

}

Это позволит перейти к следующему изображению (спасибо @XenElement за это понимание).

Нет загрузки изображений в UIImageView вообще.

MutableArray заполняется через imagePickerController.

Ниже приведены мои специальные изображения> Данные> Класс преобразования изображений

@implementation Image2Data

+ (BOOL)allowsReverseTransformation {
return YES;
}

+ (Class)transformedValueClass {
return [NSData class];
}

- (id)transformedValue:(id)value {
return UIImagePNGRepresentation(value);
}

- (id)reverseTransformedValue:(id)value {
return [[[UIImage alloc] initWithData:value] autorelease];
}

@end

Это инициализируется в моем классе управляемых объектов с:

+ (void)initialize {
if (self == [Images class]) {
    Image2Data *transformer = [[Image2Data alloc] init];
    [NSValueTransformer setValueTransformer:transformer forName:@"Image2Data"];
}
 }

Заранее спасибо за любые предложения

DetartrateD

Я изначально поставил:

[topImageArray insertObject:imageS atIndex:0];

исправлено на:

[topImageArray insertObject:imageS.topImage atIndex:0];

:)))) большой смех, я указывал на свою сущность, а не на ее атрибут, ну, урок выучен!

1 Ответ

1 голос
/ 01 июня 2011

Маловероятно, что вы сохраняете изображение как UIImage объект. Вы должны конвертировать его в NSData объект перед его сохранением. Вы должны преобразовать его обратно в UIImage объект, используя initWithData:, прежде чем устанавливать его в UIImageView экземпляр.

...