一个文件中的多个类

时间:2015-03-08 21:19:58

标签: ios objective-c uiviewcontroller xib

最近我研究了在一个文件中创建多个类的可能性,为此我创建了一个带有.xib文件的UIViewController类,该文件的结构如下:

MyFristViewController.h

#import <UIKit/UIKit.h>

@interface MyFristViewController : UIViewController

@end

@interface MySecondViewController : UIViewController

@end

MyFristViewController.m

@implementation MyFristViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"Frist View Loaded");
}

@end


@implementation MySecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"Second View Loaded");
}

@end

我的疑问是:系统如何知道执行名为&#39; MyFristViewController&#39; 的类中包含的方法?

我已经尝试在界面构建器中修改自定义类,尝试更改文件中类的位置,系统继续只运行&#39; MyFristViewController&#39; 上课为什么?

3 个答案:

答案 0 :(得分:1)

  

系统如何知道执行名为&#39; MyFristViewController&#39;?

的类中包含的方法

文件名无关紧要。在查看课程时,大多数情况下会使用@implementation <#ClassName#>@end之间的代码。

可以通过categories and class extensions添加类的其他自定义。这些也可以在同一个文件或不同的文件中指定,因为(再次)文件名是无关紧要的。

通常,每个文件应该有一个类,以便于阅读和查找代码。有关其他讨论,请参阅How many classes should a programmer put in one file?

答案 1 :(得分:0)

  

我的疑问是:系统如何知道执行名为&#39; MyFristViewController&#39;的类中包含的方法?

因为这些方法位于@implementation的{​​{1}}块中。

  

我已经尝试在界面构建器中修改自定义类,尝试更改文件中类的位置,系统继续只运行&#39; MyFristViewController&#39;中的现有方法。上课为什么?

可能是因为您已将它们与头文件中第一个MyFristViewController部分中的方法相关联。按住Control键并拖动到要绑定到的实际方法。我们不清楚你实际看到了什么问题。

那就是说,这是一个可怕的想法。将每个视图控制器放在自己的文件中。它会在一个文件中工作,但是当你看到它时会产生很多混乱。

答案 2 :(得分:0)

我参与了在单个文件中定义多个类的项目。我厌恶这种做法。我发现它非常迷惑,我浪费了很多时间来寻找定义/实现类的位置。

我建议你不要这样做。它最终会让人感到困惑。