-2

アプリをロードしたときに再生したいサウンドファイルがありますが、ボタンを押したときにしか再生できません。.hファイルが必要ですか、それとも.mファイルのみで機能しますか?

        #import "ViewController.h"

//sound
@implementation ViewController


-(void) viewDidLoad {


-(IBAction)play {           Here i get error Expected expression.
   CFBundleRef mainBundle = CFBundleGetMainBundle();
   CFURLRef soundFileURLRef;
   soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"app3", CFSTR   
   ("m4a"), NULL);
   UInt32 (soundID);
   AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
   AudioServicesPlaySystemSound(soundID);
  }

[super viewDidLoad];
}

-(IBAction)Facebook {
[[UIApplication sharedApplication]
 openURL: [NSURL URLWithString:@"http://www.facebook.com/synicapps?fref=ts]"]];
}



@end
4

3 に答える 3

0

レイアウトからビュートンをリンクするIBActionか、宣言してUIButtonターゲットを追加します@implementation ViewController

-(void) viewDidLoad {
    [super viewDidLoad];
}


-(IBAction)play {         
   CFBundleRef mainBundle = CFBundleGetMainBundle();
   CFURLRef soundFileURLRef;
   soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"app3", CFSTR   
   ("m4a"), NULL);
   UInt32 (soundID);
   AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
   AudioServicesPlaySystemSound(soundID);
 }

-(IBAction)Facebook {
[[UIApplication sharedApplication]
 openURL: [NSURL URLWithString:@"http://www.facebook.com/synicapps?fref=ts]"]];
}

@end

私はこれがまだ何も意味しないことを知っています:Sしかしあなたはこれで何をしようとしていますか:S

于 2012-12-12T20:13:08.257 に答える
0

「予期された式」エラーが発生する理由は、別のメソッド(viewDidLoad)内でメソッド(play)を宣言および定義しようとしたためです。代わりに、宣言をキャストとして扱います。ここで、メソッド名はキャストされる変数です。したがって、有効な型が括弧内に配置されていることを想定しています。ただし、IBActionはマクロです。IBActionを削除しても、エラーは残ります。これを型(voidなど)に置き換えると、「宣言されていない変数」エラーが発生します。これは、変数であると見なしているためであることを証明しています。

TL; DR:あるメソッドを別のメソッド内で定義することはできません。Objective-Cに関する優れた本を読むことを検討することをお勧めします。

編集:興味のある人にとって、これは質問者が意味すると考えたものです。

マイナス単項演算子(型)変数

キャスト後に変数の負の値を取得するのは、キャストと単項負の組み合わせです。元。

int foo = 10;
float bar = -(float)play;

メソッド宣言のようですね。

于 2012-12-12T20:28:03.170 に答える
0

そこにはいくつかの単純なエラーがあります。まず、Objective-Cの基本を読むことをお勧めします。

とにかく、これが修正されたコードです:

#import "ViewController.h"

//sound
@implementation ViewController

-(void) viewDidLoad {
    [super viewDidLoad];
    [self play];
}

-(IBAction)play {
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"app3", CFSTR ("m4a"), NULL);
    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);
}

-(IBAction)Facebook {
    [[UIApplication sharedApplication]
        openURL: [NSURL URLWithString:@"http://www.facebook.com/synicapps?fref=ts]"]];
}

@end
于 2012-12-12T20:36:43.010 に答える