Xcode帮助预期表达

时间:2012-12-12 19:50:20

标签: iphone objective-c

我有一个声音文件,我想在加载应用程序时播放,但我只能在你按下按钮时才能这样做。我是否需要.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

3 个答案:

答案 0 :(得分:0)

您将buuton从布局链接到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

答案 1 :(得分:0)

你得到“预期表达式”错误的原因是因为你试图在另一个方法(viewDidLoad)中声明和定义一个方法(play)。它将声明视为强制转换,其中方法名称是要转换的变量。因此,它期望在括号中放置有效类型。但是,IBAction是一个宏观的东西。删除IBAction,错误仍然存​​在。将其替换为类型(例如void),现在它会出现“未声明的变量”错误,这证明这是因为它认为它是变量。

TL; DR:你不能在另一个方法中定义一个方法。你可能想考虑阅读关于Objective-C的好书。

编辑:对于那些感兴趣的人来说,这就是问题提供者的意思。

减去一元运算符(类型)变量

这是一个组合施法和一元否定,以在施法后获得变量的负值。实施例

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

它看起来像一个方法声明,不是吗?

答案 2 :(得分: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