我正在通过Cocoa学习Objective-C(而且喜欢它).我正在关注一个教程.这是一个名为Menu的类,界面看起来像这样.
@interface Menu: MenuObject {} @end @interface MenuLayer : LayerObject {} -(void) someMethod:(id)sender -(void) someOtherMethod:(id)sender @end
并且实现遵循相同的约定
@implementation Menu -(id)init{ // blah blah blah } @end @implementation MenuLayer // init, someMethod and someOtherMethod stuff here @end
对我来说,看起来像是在同一个文件中定义和实现了两个独立的对象/类.这样做是否有理由?如果我将.h和.m文件拆分为Menu.h/.m和MenuLayer.h/.m,结果是否相同?还是我误解了一些基本的东西?
如果将它们拆分为单独的文件,应该没问题.大多数时候,当你看到以这种方式实现的东西时,只是因为这两个类紧密耦合在一起,你真的永远不会使用一个没有另一个.
所以,它真的只是一种风格的东西.它们在同一个文件中定义和实现的事实并没有"神奇".