-4

iPhone用の簡単なサウンドボードアプリを作ろうとしていますがimplicit definition of function '...' is invalid in C99、いくつかの異なる機能について、などのトラブルに遭遇しました。

私の .h ファイルは次のようになります。

#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>


@interface ViewController : UIViewController

{

}

- (IBAction) Jesus: (id) sender;

@end

私の .m ファイルコードは次のようになります。

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (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.
}



- (IBAction) NamedAction:(id)sender: (id) sender
{
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Jesus",
    CSFTR("WAV") NULL);
    if  (soundFileURLRef) {
        CFStringRef url = CFURLGetString(soundFileURLRef);
        NSLog(@"string for URl is %@", (__bridge NSString *) url);
    }

    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);

}


@end

私が得ているエラーメッセージは次のとおりです。

呼び出されたオブジェクト型 'int' は関数または関数ポインタではありません

4

4 に答える 4

3

- (IBAction) NamedAction:(id)sender: (id) sender

同じ名前の変数が必要です。おそらく 2 番目はタイプミスです。

- (IBAction) NamedAction: (id) sender

soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Jesus", CSFTR("WAV") NULL);

NULL の前にコンマがない可能性がありますか?

soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Jesus", CSFTR("WAV"), NULL);

于 2012-12-06T21:54:09.007 に答える
0

その他の警告フラグに -Wno-implicit-function-declaration を追加すると、コードをコンパイルできるようになります。良い解決策ではありませんが、うまくいきます。

于 2020-10-29T06:34:49.343 に答える
0

フレームワークをプロジェクトに追加するのを忘れていましたが、それは AudioToolBox であると思われます

于 2012-12-06T21:53:25.617 に答える