При нажатии кнопки приложение убивает процесс - PullRequest
0 голосов
/ 27 апреля 2011

По сути, я создал приложение для деки из другого приложения.Однако я продолжаю получать ту же ошибку, и я не могу понять, что не так.Я совершенно новичок в xcode, и я искал помощь по всему Интернету.Я опубликую всю информацию, которая может потребоваться, и мы надеемся, что это сработает.

## Отчет об ошибках ##

2011-04-27 00:37:01.437 SoundBoard[11613:207] -[HBFSViewController pushBetter]: unrecognized selector sent to instance 0x693ccb0
2011-04-27 00:37:01.440 SoundBoard[11613:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HBFSViewController pushBetter]: unrecognized selector sent to instance 0x693ccb0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x02553b99 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x026a340e objc_exception_throw + 47
    2   CoreFoundation                      0x025556ab -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x024c52b6 ___forwarding___ + 966
    4   CoreFoundation                      0x024c4e72 _CF_forwarding_prep_0 + 50
    5   UIKit                               0x002b27f8 -[UIApplication sendAction:to:from:forEvent:] + 119
    6   UIKit                               0x0033dde0 -[UIControl sendAction:to:forEvent:] + 67
    7   UIKit                               0x00340262 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    8   UIKit                               0x0033ee0f -[UIControl touchesEnded:withEvent:] + 458
    9   UIKit                               0x002d63d0 -[UIWindow _sendTouchesForEvent:] + 567
    10  UIKit                               0x002b7cb4 -[UIApplication sendEvent:] + 447
    11  UIKit                               0x002bc9bf _UIApplicationHandleEvent + 7672
    12  GraphicsServices                    0x02e33822 PurpleEventCallback + 1550
    13  CoreFoundation                      0x02534ff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    14  CoreFoundation                      0x02495807 __CFRunLoopDoSource1 + 215
    15  CoreFoundation                      0x02492a93 __CFRunLoopRun + 979
    16  CoreFoundation                      0x02492350 CFRunLoopRunSpecific + 208
    17  CoreFoundation                      0x02492271 CFRunLoopRunInMode + 97
    18  GraphicsServices                    0x02e3200c GSEventRunModal + 217
    19  GraphicsServices                    0x02e320d1 GSEventRun + 115
    20  UIKit                               0x002c0af2 UIApplicationMain + 1160
    21  SoundBoard                          0x00001b30 main + 102
    22  SoundBoard                          0x00001ac1 start + 53
)
terminate called after throwing an instance of 'NSException'
## HBFS VIEW CONTROLLER .M ##

import "HBFSViewController.h"
import <AVFoundation/AVAudioPlayer.h>

@implementation HBFSViewController

- (IBAction)pushAbout {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"About" message:@"The Mr Dolan Soundboard : Created by Charlie Gilbertson" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
    [alert show];
    [alert release];

}

- (IBAction)pushAnd {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"And" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];    

}

- (IBAction)pushLad {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Lad" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushNoLegs {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"No legs" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushMyDaughter {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"My Daughter" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushLass {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Lass" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushYO {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"YO" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushTape {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Tape" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];    

}

- (IBAction)pushMySon {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"My Son" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushNoArms {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"No arms" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushCanDo {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Can do better than you" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushOr {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Or" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushScotch {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Scotch" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushAndThey {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"And they've got" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}

- (IBAction)pushEgg {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Egg" ofType:@"aif"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play];

}
@end


## HBFS VIEW CONTROLLER .H ##

import <UIKit/UIKit.h>
import <Foundation/Foundation.h>
import <AVFoundation/AVAudioPlayer.h>

@interface HBFSViewController :UIViewController <AVAudioPlayerDelegate> {
    IBOutlet UIBarButtonItem *aboutButton;
    IBOutlet UIToolbar *toolBar;
}
- (IBAction)pushAbout;
- (IBAction)pushAnd;
- (IBAction)pushLad;
- (IBAction)pushLass;
- (IBAction)pushOr;
- (IBAction)pushScotch;
- (IBAction)pushTape;
- (IBAction)pushYO;
- (IBAction)pushEgg;
- (IBAction)pushNoLegs;
- (IBAction)pushNoArms;
- (IBAction)pushMyDaughter;
- (IBAction)pushMySon;
- (IBAction)pushCanDo;
- (IBAction)pushAndThey;
@end

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Вы видите это сообщение об ошибке?

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HBFSViewController pushBetter]: unrecognized selector sent to instance 0x693ccb0

Теперь рассмотрим все перечисленные вами IBAction методы (-pushAbout и т. Д.).

Вы заметите, что -pushBetter среди них нет.

Вам нужно написать метод -pushBetter и подключить его к UIButton.

1 голос
/ 27 апреля 2011

Похоже, что вы каким-то образом отправляете вызов метода pushBetter в свой контроллер представления, к которому он явно не подготовлен (в соответствии с вашим кодом и ошибкой):

-[HBFSViewController pushBetter]: unrecognized selector sent to instance 0x693ccb0' 

Можете ли вы обратиться к глобальномупоиск "pushBetter" и посмотреть, где он находится в вашем проекте ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...