2016-08-15 43 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,我將不得不明確傳遞一個標誌。

相關問題