我已经制作了一个IBAction,应该把我带到Safari中的www.google.com,但是当我写它时,它给了我错误
预期标识符或'('
以下是.h文件中的代码。
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@class AVCaptureSession, AVCaptureDevice;
@interface SignInViewController : UIViewController
#import <UIKit/UIKit.h>
#import "ZBarSDK.h"
@interface QRscannerThirdViewController : UIViewController
<UIImagePickerControllerDelegate,ZBarReaderDelegate>{
}
@property (nonatomic, retain) IBOutlet UITextView *resultTextView;
@property (nonatomic, retain) UIImagePickerController *imgPicker;
-(IBAction)StartScan:(id) sender;
-(IBAction)TakeInput;
-(IBAction)LaunchPayPal;
[[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"/private/etc/hosts"]];
//This is where the error "Expected identifier or '('" shows up.
@end
答案 0 :(得分:0)
这里有一些问题:
方法名称应为lowerCamelCase
。一些例外情况适用,例如,如果方法以众所周知的首字母缩写词开头(例如URLWithString
或UTF8String
)。
@interface
块用于描述您班级的界面。这根本不应包含任何实现细节。实施细节(即实际代码)进入@implementation
块。
您正在使用URLWithString:
但是您没有提供URL字符串,而是提供了路径字符串。您需要使用fileURLWithPath:
代替URLWithString:
。
总结一下,删除@interface
块中的代码并将其移至@implementation
块:
@implementation SignInViewController
- (IBAction) startScan:(id) sender
{
// do stuff
}
- (IBAction) takeInput
{
// do stuff
}
- (IBAction) launchPayPal
{
[[[UIApplication sharedApplication] openURL:[NSURL fileURLWithPath:@"/private/etc/hosts"]];
}
@end
答案 1 :(得分:0)
将@interface之后的2 #import语句移到文件顶部,并消除重复的UIKit导入。
接下来删除此行:[[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"/private/etc/hosts"]];
这不属于您的头文件,它会进入实现(.m)文件中的方法。
这应该会让你走得更远。祝你好运。