-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 回答