【问题标题】:Iphone: writing some methods in a seperate file to acess from everywhereIphone:在单独的文件中编写一些方法以从任何地方访问
【发布时间】:2011-02-20 22:26:50
【问题描述】:

这是一个简单的问题, 我有我的几个视图控制器类,还有一些其他类。 我发现我自己在他们的所有实现文件中创建了一些方法,这些方法都是一样的。

我想将我的一些方法写在一个单独的文件中, 并将此文件导入我的视图控制器。 因此,我将能够从我当前的视图控制器运行这些方法,

如果这个方法需要改变,我不需要在我所有的实现文件中重写它。

让我只说一件事。我不想创建一个新对象!并实例化它。 我确实希望能够像以前一样运行此方法:[self doSomething];

请帮助理解如何做到这一点。

即 我有 3 个视图控制器,每个都有以下方法:

-(void)doSomething:(id)sender{
//doing something
}

只想在一个地方定义这个doSomething方法, 我可以通过运行从我的视图控制器访问它: [自己做某事];

有可能吗?

提前致谢。

【问题讨论】:

    标签: objective-c iphone xcode methods


    【解决方案1】:

    您想通过子类化来做到这一点。首先创建一个你想要所有共享方法的类,作为 UIViewController 的子类,我们称之为 BaseViewController。例如,你的头文件中有这个:

    @interface BaseViewController: UIViewController 
    {
    }
    -(void)doSomething:(id)sender;
    @end
    

    然后是你的.m文件中对应的定义。

    现在,当您想创建一个具有共享方法的新 UIViewController 子类时,请将新类设为 BaseViewController 而不是 UIViewController 的子类,如下所示:

    @interface MyViewController: BaseViewController
    {
    }
    @end
    

    【讨论】:

    • 嘿,完美,魅力十足,但还有一个问题,一个类可以是多个类的子类吗?我的意思是,我可以这样做:@interface PersistenceViewController : UIViewController :SQLcontroller { 正如您从上面可以理解的那样,我确实想为我的所有 SQL 创建一个类,(访问数据库、打开/获取/关闭、创建表... ) 你明白了。
    • 最好将数据库访问完全放在另一个类中,然后将此类的一个实例放入您的视图控制器中。将 DB 视为模型、视图、控制器模式的“模型”部分。
    • 嘿科林,听起来这就是我要找的东西,你能给我一个小例子来说明应该怎么做吗?
    • @Dror Sabbag - 尝试谷歌搜索 MVC :)
    • 嘿,我想通了,谢谢大家的回答!
    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 2019-06-24
    • 2019-12-09
    • 2013-07-30
    • 1970-01-01
    • 2011-01-06
    • 2015-03-31
    • 1970-01-01
    相关资源
    最近更新 更多