另一个类的Objective-C调用函数?

Chr*_*art 10 class objective-c

这是我的objective-c类:

AppDelegate
SomeScript
Run Code Online (Sandbox Code Playgroud)

我如何从app-delegate或任何其他类调用SomeScript类上的函数loggedIn?

谢谢,Christian Stewart

and*_*n22 38

(我假设loggedIn是一个不带参数的实例方法.)首先,有几个术语问题:

  1. 它们不是功能,它们是方法(虽然相同的想法).
  2. 你没有调用方法,你发送消息(通常是相同的想法).
  3. 最重要的是,我们通常不向类发送消息,而是向这些类的实例发送消息.(如果你不能想像的不同,想象将信函投入信箱的想法与放置信您的邮箱.只有一个很有意义!)

因此,我们的新计划是首先实例化 SomeScript,然后实例发送消息.

SomeScript* myScript = [[SomeScript alloc] init]; //First, we create an instance of SomeScript
[myScript loggedIn]; //Next, we send the loggedIn message to our new instance
Run Code Online (Sandbox Code Playgroud)

这很好.然而!我打赌你希望你的脚本能够随时使用.因此,我们应该真正使它成为您的app委托的实例变量.所以,在AppDelegate.h中,在大括号内添加:

SomeScript* myScript;
Run Code Online (Sandbox Code Playgroud)

现在我们的变量将会存在,而我们之前的第一行变得简单:

myScript = [[SomeScript alloc] init];
Run Code Online (Sandbox Code Playgroud)

最后一个复杂问题:我们不想每次调用时创建一个新脚本loggedIn(我假设)!因此,您应该将实例化放置在仅运行一次的位置(例如,application:DidFinishLaunchingWithOptions:).当当!