我们可以在可可中使用一个接口和实现文件吗? 如果是,那么在哪个文件中使用哪一个?我们可以在目标c中使用接口和实现文件吗?
回答
除非你不想让你的任何对象相互交谈,或者除非你想使用纯粹的动态类型(每个变量类型为id
,几乎没有编译时的完整性检查)并且没有子类化任何你自己的类的意图。
如果在头文件中没有@interface
,则不能将该@interface
导入另一个类的实现文件中,以使其方法和属性声明可用。在头文件中使用@implementation
,您将会看到链接错误,因为预处理器会将@implementation
复制到所有位置。
随着@interface
S IN头文件和@implementation
S IN实现文件,您的每个@implementation
恰好一个实现文件,以及@interface
的可用无论你需要他们,这样既可以使编译器做更多的检查和编辑器提供更多更智能的完成。我不明白为什么你想在Objective-C中切换到单个文件类模式。
我已经把一个类的接口和实现放在一个文件之前,但它是一个私人类(或类别),所以它是在类的实现文件用它。 – ughoavgfhw 2011-01-14 07:44:22
@ughoavgfhw:是的,它适用于仅作为另一个类的实现细节存在的类或类别。不过,你不能为你的公共类(在你的应用程序中被其他对象/类使用)执行此操作。 – 2011-01-14 08:43:36
我们可以在一个可可中使用接口和实现文件吗?
是的,你可以。实际上,当我有一个类工厂时,我经常这样做,并根据传入的参数给出不同子类的实例。
如果是,那么在哪个文件中使用哪个文件?
.m文件中的所有内容。如果你把它全部放在.h文件中,它就不会被编译,除非你将.h文件包含在某个.m文件中。要注意的是,尽管就编译器而言,这给你类似于静态变量的文件范围,但就链接器而言,类符号仍然是全局范围的。如果在不同的.m文件中有两个相同名称的类,则该链接可能会失败并出现重复的符号错误或两个错误。
- 1. 我们可以在c#中使用接口实现多态吗?
- 2. 我可以在C#中使用子类实现接口吗?
- 3. 我们可以在jsp中实现一个接口吗?
- 4. 我可以在.h文件中的C#中实现一个接口吗?
- 5. c#app:可以实现JSON接口吗?
- 6. 我可以在C++中实现多个回调接口吗?
- 7. 我们可以使用Dispose方法而不实现IDisposable接口吗?
- 8. 我们可以使用xcode在Facebook中实现autoshare吗?
- 9. 我们可以在linux中实现C++ thunk吗?
- 10. 我可以使用从Java实现java接口的scala类吗?
- 11. 我们可以在C#项目中使用COM对象吗?
- 12. 我们可以将C++文件添加到iOS项目中吗?
- 13. 我可以限制哪些类可以实现接口吗?
- 14. Objective-C可以使用C++接口吗?
- 15. 可以重载接口的实现吗?
- 16. 我可以在接口和实现行中缩进函数和属性吗?
- 17. 我们可以在C#.NET的接口中添加变量和属性吗?
- 18. 我们可以使用xmlserializer更新现有的xml文件吗?
- 19. 我们可以使用Scribe Workbench写入(目标)文本文件吗?
- 20. 我可以在c#项目中添加.h和.cpp文件吗?
- 21. 我可以用PHPUnit模拟一个接口实现吗?
- 22. 我们可以在Windows上编译目标c吗?
- 23. 一个接口有两个类型参数。我可以使用两种类型的接口来实现接口吗,这样它们就可以兼容了吗?
- 24. 我们可以使用asp.net和c#从localhost发送邮件吗?
- 25. 我可以发现JMX接口吗?
- 26. 我们可以使用C#比较两个JavaScript文件吗?
- 27. 我可以在C#项目上使用.rc资源文件吗?
- 28. 现在我们可以在DjEng中使用GAE中的ORM吗?
- 29. C#使用泛型和接口实现
- 30. 我们可以在apk文件中捆绑一个目录吗?
您失去了使用Cmd-Opt-UpArrow立即在接口和实现之间切换的魔法能力。文件太多? – 2011-01-14 05:30:50