2013-10-28 49 views
0

我遇到了一個應用程序,我正在設計的問題。SIGBAT錯誤按鈕按

基本上,用戶按下一個按鈕,它將他們帶到另一個屏幕,該屏幕可以選擇拍照或選擇正在退出的照片,然後通過電子郵件發送出去。

這裏是.h文件

#import <UIKit/UIKit.h> 


@interface RoadSafetyViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 
{ 
    UIImagePickerController *picker1; 
UIImagePickerController *picker2; 
UIImage *image; 
IBOutlet UIImageView *imageView; 
} 

-(IBAction)TakePhoto; 
-(IBAction)ChooseExisting; 

@end 

與.m文件

// 
// RoadSafetyViewController.m 
// Road Safety App 
// 
// Created by Information Services on 30/09/13. 
// Copyright (c) 2013 Shellharbour Sity Council. All rights reserved. 
// 

#import "RoadSafetyViewController.h" 
#import "RoadSafetyAppDelegate.h" 



@interface RoadSafetyViewController() 

@end 

@implementation RoadSafetyViewController 

- (IBAction)TakePhoto 
{ 
    picker1 = [[UIImagePickerController alloc] init]; 
    picker1.delegate = self; 
    [picker1 setSourceType: UIImagePickerControllerSourceTypeCamera]; 
    [self presentViewController:picker1 animated:YES completion:NULL]; 
    [picker1 release]; 


} 

- (IBAction)ChooseExisting 
{ 
    picker2 = [[UIImagePickerController alloc] init]; 
    picker2.delegate = self; 
    [picker2 setSourceType: UIImagePickerControllerSourceTypePhotoLibrary]; 
    [self presentViewController:picker2 animated:YES completion:NULL]; 
    [picker2 release]; 
} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setImage:image]; 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 
{ 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

我在下面的行得到一個SIGBAT錯誤

// 
// main.m 
// Road Safety App 
// 
// Created by Information Services on 30/09/13. 
// Copyright (c) 2013 Shellharbour Sity Council. All rights reserved. 
// 

#import <UIKit/UIKit.h> 

#import "RoadSafetyAppDelegate.h" 

int main(int argc, char * argv[]) 
{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([RoadSafetyAppDelegate class])); //here is where I'm getting a Thread 1: signal SIGBAT error. 
    } 
} 

這裏是控制檯輸出的錯誤。

2013-10-29 09:16:16.870 Road Safety App[907:70b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<HazardIdentificationViewController 0xc32bda0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key imageView.' 
*** First throw call stack: 
(
    0 CoreFoundation      0x018f85e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x0167b8b6 objc_exception_throw + 44 
    2 CoreFoundation      0x019886a1 -[NSException raise] + 17 
    3 Foundation       0x0133c9ee -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282 
    4 Foundation       0x012a8cfb _NSSetUsingKeyValueSetter + 88 
    5 Foundation       0x012a8253 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267 
    6 Foundation       0x0130a70a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412 
    7 UIKit        0x0068ba15 -[UIRuntimeOutletConnection connect] + 106 
    8 libobjc.A.dylib      0x0168d7d2 -[NSObject performSelector:] + 62 
    9 CoreFoundation      0x018f3b6a -[NSArray makeObjectsPerformSelector:] + 314 
    10 UIKit        0x0068a56e -[UINib instantiateWithOwner:options:] + 1417 
    11 UIKit        0x004fc605 -[UIViewController _loadViewFromNibNamed:bundle:] + 280 
    12 UIKit        0x004fcdad -[UIViewController loadView] + 302 
    13 UIKit        0x004fd0ae -[UIViewController loadViewIfRequired] + 78 
    14 UIKit        0x004fd5b4 -[UIViewController view] + 35 
    15 UIKit        0x005173e2 -[UINavigationController _startCustomTransition:] + 778 
    16 UIKit        0x005240c7 -[UINavigationController _startDeferredTransitionIfNeeded:] + 688 
    17 UIKit        0x00524cb9 -[UINavigationController __viewWillLayoutSubviews] + 57 
    18 UIKit        0x0065e181 -[UILayoutContainerView layoutSubviews] + 213 
    19 UIKit        0x00454267 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 
    20 libobjc.A.dylib      0x0168d81f -[NSObject performSelector:withObject:] + 70 
    21 QuartzCore       0x022022ea -[CALayer layoutSublayers] + 148 
    22 QuartzCore       0x021f60d4 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380 
    23 QuartzCore       0x021f5f40 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 26 
    24 QuartzCore       0x0215dae6 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 294 
    25 QuartzCore       0x0215ee71 _ZN2CA11Transaction6commitEv + 393 
    26 QuartzCore       0x0215f544 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 92 
    27 CoreFoundation      0x018c04ce __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 
    28 CoreFoundation      0x018c041f __CFRunLoopDoObservers + 399 
    29 CoreFoundation      0x0189e344 __CFRunLoopRun + 1076 
    30 CoreFoundation      0x0189dac3 CFRunLoopRunSpecific + 467 
    31 CoreFoundation      0x0189d8db CFRunLoopRunInMode + 123 
    32 GraphicsServices     0x02c989e2 GSEventRunModal + 192 
    33 GraphicsServices     0x02c98809 GSEventRun + 104 
    34 UIKit        0x003e9d3b UIApplicationMain + 1225 
    35 Road Safety App      0x00003222 main + 130 
    36 libdyld.dylib      0x062a170d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

我是iOS應用開發新手,不知道這個錯誤來自哪裏。任何幫助確定和糾正錯誤將是太棒了!

+2

操作系統告訴你到底發生了什麼問題。你的'HazardIdentificationViewController'類沒有'imageView'屬性。 –

回答

0

您的HazardIdentificationViewController沒有imageView屬性。如果您在Interface Builder中擁有此類,請確保您從中取出imageView

+0

非常感謝! – scb998