2016-08-15 76 views
2

我正在检查mailcore 2示例演示的源代码。 IOS项目有一个类“MCOMessageView.mm”。这是一个非常好的帮助类,有一个webview和几个代表html渲染的代表。那么为什么使用'mm'作为它的文件扩展名,因为它不包含任何C++代码。为什么在Mailcore2示例'MCOMessageView'文件是一个C++文件而不是目标c文件?

+0

因为原因。这被认为是对SO有效的问题的方式? – Avi

+0

@Avi该示例项目由mailcore2的工程师完成。我想知道在设置这类延伸'mm'时他们的考虑是什么。 – fans3210

+0

投机事宜是无关紧要的。询问mailcore的工程师。 – Avi

回答

2

一些用于处理ObjC++的开发人员默认为他们的ObjC类使用.mm扩展名,即使不需要C++代码,以便他们稍后可以在需要时使用ObjC++。

MailCore使用ObjC++默认,默认为类,以便.mm扩展,即使在当时他们是在它没有C++代码,它可以在将来添加。

它几乎不花费运行时间,所以它只是一种做事的方式。而且由于LVVM,它在构建时的代价很小

另一种可能性是它们在C++之前版本的文件中,并且在提交之后提交,C++代码被替换,并且他们不打扰重命名该类,因为他们仍然可以在将来添加一些C++代码,并且他们希望保持自由。

1

之所以使用.mm是,它会提示的Xcode它需要的C++运行时连接最后的二进制文件。 如果我使用.m,我将不得不明确传递一个标志。

相关问题