我一直试图让我的应用程序从照片库中选择一张照片然后显示它,它在不同的项目中运行良好,但在这个应用程序中运行正常但是当我按下应该的 UIButton 时调出画廊,我在 int retVal = UIApplicationMain(argc, argv, nil, nil); 上的 main.m 中收到错误 SIGABRT;
正如我所说,这在过去工作得很好,所以我不知道为什么现在不行,这里是与错误相关的代码部分,我只是发布它,因为我有很多代码,这样更容易。
ViewController.h
#import <UIKit/UKit.h>
@interface ViewController : UIViewController
<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
//Blah blah blah
}
//Blah blah blah
-(IBAction) selectExistingpicture;
@property (nonatomic, retain) IBOutlet UIImageView *theImageView;
//Blah blah blah
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
@synthesize theImageView;
-(IBAction) selectExistingPicture
{
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentModalViewController:picker animated:YES];
[picker release];
}
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage : (UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
theImageView.image = image;
[picker dismissModalViewControllerAnimated:YES];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *) picker
{
[picker dismissModalViewControllerAnimated:YES];
}
我已将 selectExistingPicture 链接到 UIButton,但我不知道是什么导致该按钮导致我出错。
非常感谢任何帮助。
最佳答案
这是我使用相机胶卷的方式
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, (NSString *) kUTTypeMovie,
nil];
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
}
else {
NSLog(@"Error");
}
我认为你的问题是
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
应该是
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
还有你好像不见了
imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, (NSString *) kUTTypeMovie,
nil];
看看我是如何设置的
关于objective-c - 访问照片库时的 Xcode SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836992/