-3

Safariでwww.google.comに移動するIBActionを作成しましたが、書き込んだときにエラーが発生しました

予期される識別子または '('

.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
4

2 に答える 2

1

ここにはいくつかの間違いがあります:

  1. メソッド名はlowerCamelCase. URLWithStringメソッドがよく知られている頭字語 (または など)で始まる場合など、いくつかの例外が適用されますUTF8String

  2. @interfaceブロックは、クラスへのインターフェースを記述するために使用されます。これには、実装の詳細をまったく含めないでください。実装の詳細 (つまり、実際のコード) は 1 つの@implementationブロックにまとめられます。

  3. 使用して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
于 2013-02-03T02:41:26.877 に答える
1

@interface の直後にある 2 つの #import ステートメントをファイルの先頭に移動し、重複する UIKit インポートを削除します。

次に、この行を削除します。[[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"/private/etc/hosts"]]; これはヘッダー ファイルに属していません。実装 (.m) ファイルのメソッドに入ります。

それはあなたを少し先に進めるはずです。幸運を。

于 2013-02-03T02:42:41.993 に答える