objective-c - 访问照片库时的 Xcode SIGABRT

标签 objective-c ios camera sigabrt

我一直试图让我的应用程序从照片库中选择一张照片然后显示它,它在不同的项目中运行良好,但在这个应用程序中运行正常但是当我按下应该的 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/

相关文章:

java - 如何在三星 Galaxy 设备上同时打开前置和后置摄像头?

ios - UILabel - 已弃用方法的替代方法 "adjustsLetterSpacingToFitWidth"

ios - objective-c : memory management with NSTimer objects

iOS(iPhone) 应用程序与 ipad 兼容。但是怎么办?

iOS分发认证转换为p12格式

ios - 在 iOS 上设置初始焦距

ios - 设置文本框数组的边框颜色

objective-c - Web服务应用程序的设计模式(使用APNS)

ios - 有没有办法让 `genstrings` 与 `LocalizedStringKey` 一起工作?

java - 测量来自 Android 相机的光强度