2012-02-24 4 views
2

Iました、次のように別の方法に成功した合理的なセットアップのアクセス:Xcodeの:他のクラスファイルからメソッドインスタンスへのアクセス

SomeScript.m(私がアクセスしようとしているクラス)

-(void)amethod{.... 

{}内codeA.h(amethodにアクセスしているクラスは、)を有する:

SomeScript* myScript; 

codeA.m

myScript = [[SomeScript alloc] init]; 
[myScript amethod]; 

私がしたいのは、アプリケーション代理人のインスタンス変数ですが、私はSomeScript * myScriptを配置します。 myScript = [[SomeScript alloc] init];と入力します。 AppDelegate.hでは、codeA.mはそれを認識しません。

+0

'AppDelegate'に' SomeScript'のインスタンスを作成し、 'codeA'でアクセスしますか?また、 'codeA'の' AppDelegate'にアクセスできますか? – sch

+0

あなたは何をしたいのですか?アプリケーションデリゲートにSomeScriptのインスタンス変数を作成しますか? –

+0

はいスクリプトのインスタンスを作成して、プログラムの他のどのクラスからも 'amethod'メソッドにアクセスできます。私はあなたがCodeAから 'AppDelegate'にアクセスすることによって何を意味するのか分かりません(申し訳ありませんが、私はこれを初めて知っていますが速く学びます).hファイルをcodeAにインポートするだけでアクセスできますか? –

答えて

2

まず、プロパティを追加myScriptAppDelegateへ:

AppDelegate.hで

@interface AppDelegate : UIResponder <UIApplicationDelegate> 

@property (strong, nonatomic) SomeScript *myScript; // Add this line 

//... 

@end 

あなたが宣言し、プロパティを初期化したことを今

@implementation PCAppDelegate 

@synthesize myScript; // Add this line 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.myScript = [[SomeScript alloc] init]; // Add this line 

//... 

@end 

AppDelegate.m

で、あなた他のクラスの次のように使用できます:

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; 
[appDelegate.myScript aMethod]; 
+0

ありがとうございました - 両方の方法を試しました。最初のオプションは、エラー 'プロパティappDelegateがタイプ "codeA *"'のオブジェクトに見つかりませんでした。そして2番目のメソッドは、 'AppDelegate *型のオブジェクトにプロパティmyscriptが見つかりません。 –

+0

@ lukedom89 - 私の編集された答えを見てください。私はあなたがどのようにアプリケーションデリゲートにプロパティを追加できるかを説明しました。 – sch

+0

ありがとう!治療をしなさい。 –

関連する問題