2012-02-24 56 views
2

我已經成功地合理設置訪問另一個方法以下列方式: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 2012-02-24 16:44:25

+0

你想要做什麼?你想在應用程序委託中創建SomeScript的實例變量嗎? – 2012-02-24 16:39:06

+0

是的,我想創建腳本的一個實例,所以我可以從其它類整個計劃訪問方法「amethod方法」。我不知道你所說的有機會獲得從CODEa所的「AppDelegate中」(對不起,我很新的這一點,但學得很快),它可以有從剛剛導入.h文件到CODEa所訪問是什麼意思? – 2012-02-26 16:12:25

回答

2

首先,添加屬性myScriptAppDelegate

在AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate> 

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

//... 

@end 

在AppDelegate.m

@implementation PCAppDelegate 

@synthesize myScript; // Add this line 

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

//... 

@end 

現在你已經聲明和初始化屬性,你可以使用它像其他類的情況如下:

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

感謝您的回覆 - 我已經嘗試了兩種方法。第一個選項給「上鍵入‘* CODEa所’的對象沒有找到屬性的appDelegate」的錯誤,第二個方法給出「對類型的AppDelegate的對象沒有找到物業的MyScript *」這是否給出任何東西,我不是這樣做對嗎? – 2012-02-26 16:17:10

+0

@ lukedom89 - 查看我編輯的答案。我解釋瞭如何將該屬性添加到應用程序委託。 – sch 2012-02-26 16:32:10

+0

謝謝!作品一種享受。 – 2012-02-26 17:25:22