mailcore 2 샘플 데모에서 소스 코드를 확인하고 있습니다. IOS 프로젝트에는 'MCOMessageView.mm'클래스가 있습니다. 그것은 webview와 HTML 렌더링을위한 몇 가지 델리게이트를 가진 아주 좋은 도우미 클래스입니다. 그렇다면 'mm'을 파일 확장자로 사용하는 이유는 C++ 코드가 없기 때문입니다.왜 Mailcore2 샘플 'MCOMessageView'파일은 C++ 파일 대신 객관적인 하나입니까?
2
A
답변
2
ObjC++를 다루는 데 사용 된 일부 개발자는 필요하면 ObjC++를 나중에 사용할 수 있도록 ObjC 클래스에 기본적으로 .mm 확장명을 사용합니다 (C++ 코드가 필요하지 않더라도).
MailCore는 기본적으로 ObjC++를 사용하므로 그 시간에 C++ 코드가 없더라도 기본적으로 클래스의 .mm 확장명을 사용하므로 추후에 추가 될 수 있습니다.
사실 실행 시간이 거의 들지 않으므로 일을하는 방법 일뿐입니다. 그리고 LVVM 이후 빌드시 비용은 거의 들지 않았습니다.
또 다른 가능성은 이전 버전의 파일에서 C++이었고 커밋 후 커밋하여 C++ 코드가 바뀌었고 클래스 이름 바꾸기가 번거롭지 않기 때문입니다. 그들은 미래에 C++ 코드를 추가 할 수 있고 손을 자유롭게하고 싶어합니다.
1
.mm을 사용하는 이유는 최종 바이너리를 연결하기 위해 C++ 런타임이 필요하다는 것을 Xcode에 알릴 것이기 때문입니다. .m을 사용하면 명시 적으로 플래그를 전달해야합니다.
이유. 이것이 어떤 의미에서 유효한 질문인가? – Avi
@Avi 샘플 프로젝트는 mailcore2의 엔지니어가 작성했습니다. 이 확장 클래스를 설정할 때 고려해야 할 사항은 무엇인지 궁금합니다. 'mm'. – fans3210
투기의 문제는 논픽션입니다. mailcore의 엔지니어에게 물어보십시오. – Avi