最近我研究了在一个文件中创建多个类的可能性,为此我创建了一个带有.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; 中的现有方法强>上课为什么?
答案 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)
我参与了在单个文件中定义多个类的项目。我厌恶这种做法。我发现它非常迷惑,我浪费了很多时间来寻找定义/实现类的位置。
我建议你不要这样做。它最终会让人感到困惑。