Итак, я создал целое приложение, и оно работает безошибочно, как я и предполагал. Создано обновление, которое использует UIImages и отлично работает ТОЛЬКО НА iOS 4 и выше. По какой-то причине точно такой же код не будет работать так же на 3.0. Поскольку оригинальное приложение находится в магазине с минимальной ОС, равной 3, я не хочу просто отключать свою базу пользователей из-за какой-то глупой ошибки с моей стороны. Я не делаю ничего нового, поэтому все должно быть обратно совместимо.
В основном приложение берет изображение, выбранное из камеры или фотоальбома, а затем сохраняет его и отображает изображение на экране. Когда вы переходите к следующему экрану, он вытаскивает файл изображения с диска и отображает его в виде изображения на следующем экране. Опять же, отлично работает на iOS4 и выше.
При использовании сима 3.0 в более старой версии xcode, он просто не будет работать так же. Я знаю, что allowImageEditing был изменен на allowEditing, поэтому я разрешил это, но все остальное, как кажется в соответствии с документами, должно работать на iOS 3 и выше.
Ниже я иду в фотоальбом и возвращаюсь.
-(IBAction) getPhotoFromAlbum {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
if (editingSwitch.on) {
#ifdef __IPHONE_3_0
picker.allowsImageEditing = YES;
#else
picker.allowsEditing = YES;
#endif
} else if (!editingSwitch.on) {
#ifdef __IPHONE_3_0
picker.allowsImageEditing = NO;
#else
picker.allowsEditing = NO;
#endif
}
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
[picker release];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
UIImage *image = nil;
if (editingSwitch.on) {
image = [info objectForKey:@"UIImagePickerControllerEditedImage"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:isImageEdited];
} else if (!editingSwitch.on) {
image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:isImageEdited];
}
imageView.image = [self imageWithImage:image];
imageView.hidden = NO;
buttonPreview.hidden = YES;
[NSThread detachNewThreadSelector:@selector(myThreadSavingImage) toTarget:self withObject:nil];
[activitySaving startAnimating];
Когда я отлаживаю, кажется, что информация, возвращаемая из сборщика, имеет только 1 ключ. Когда он устанавливает изображение, изображение пустое. По существу, изображение никогда не возвращается, и если по каким-то редким случаям это происходит, например, когда я редактирую изображение, а не просто использую оригинал, оно не отображается на следующей странице.
Надеюсь, что все могут помочь, как только приложение будет завершено, кроме этой проблемы 3.0 и ее разочарования, поскольку я хочу выпустить ее в ближайшее время.