【问题标题】:Calling one class file from another从另一个类文件中调用一个类文件
【发布时间】:2010-01-20 19:35:33
【问题描述】:

我是 iPhone 开发环境的新手,所以要温柔:

目前正在编写一个 iPhone 游戏应用程序,该应用程序也将具有高分视图。想要制作这个视图,以便它独立,我可以从另一个类(.m 文件)调用它

问题是,如何调用另一个类文件?我知道我需要包含该文件的标头,但是如何从该类中调用“函数/消息”...类似于更新高分?

我希望这可以发送。提前感谢您提供的所有帮助。

地理...

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案1】:

    您确实应该按照自己的方式阅读 Apple 开发者网站上的介绍性文档: Learning Objective-C: A PrimerYour First iPhone Application

    【讨论】:

      【解决方案2】:

      如果你的函数是静态的,这样调用它:

      [ClassName theFunction:parameter];

      如果您的函数是该类的成员,则创建该类的一个实例并像这样调用该函数:

      ClassName obj = [[ClassName alloc] init];
      [obj theFunction:parameter];
      

      【讨论】:

      • 您通常不希望随便创建视图实例。
      【解决方案3】:

      不要认为它是调用函数/方法/过程/任何东西。将其视为一个对象与另一个对象交谈。他们需要做什么?您需要对要与之交谈的对象的引用。

      通常,您需要创建一个实例变量来分配给您感兴趣的对象。如果两个对象都在一个 nib 中,您可以在 Interface Builder 中绘制它们之间的连接。否则,您需要构建代码以便它们能够找到彼此(例如,为 nib 的所有者提供对需要与视图对话的任何其他对象的引用)。

      您可能想尝试学习其中的许多教程(例如,在 Apple 的开发者网站上),以了解其工作原理。

      【讨论】:

        【解决方案4】:

        对此的首选技术是委托。这样您的主视图就会将评分任务委托给您的 HighScore 视图。

        @protocol myDelegate;
        
        
        @interface myClass : UIView {
        id <myDelegate> delegate;
        }
        
        @property (nonatomic, assign) id <myDelegate> delegate;
        
        
        @end
        
        @protocol myDelegate
        - (void)myMethod //Method to be implemented by your High Score View
        

        要在您的高分视图中实施此协议,请执行以下操作:

        @interface HighScore : UIview <myDelegate>
        

        在你的 HighScore.m 中实现方法 mymethod:

        - (void)myMethod {
        //update Score etc...
        }
        

        要从您的其他视图调用该方法,请执行以下操作:

        myHighScoreView.delegate = self // self is your other view
        [delegate myMethod] // calls the method in the other view.
        

        我希望这很清楚。

        -奥斯卡

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-17
          • 1970-01-01
          • 2020-11-16
          • 2015-11-03
          • 1970-01-01
          • 2010-10-27
          • 2013-06-16
          相关资源
          最近更新 更多