iOS개발/기타

Called object type 'Class' is not a function or function pointer 에러

Larooly 2025. 3. 25. 16:36

안녕하세요. 

이번 에러 2가지는 조만간 올라갈 글과 관계가 있는데

한번 간단히 정리해보도록 하겠습니다. 

 

* 발생 상황

C++ 언어로된 클래스를 가져와서 사용하려고 하니까 발생했습니다.

오랜만에 보는 것 같네요

* 참고로 Use of undeclared identifier 'cpp' 에러도 발생했었습니다. 

이런 오류도 발생했습니다.

-> 이 오류는 여러 원인이 있지만 여기서는 선언하는 방법이 C++ 와 맞지 않다는 의미입니다. 

아래처럼 코드를 바꾸시면 이 에러는 사라집니다. 

CppClass* cpp = [[CppClass alloc]init]; //에러남
// 아래처럼 수정    
CppClass* cpp = new CppClass(); // 이렇게 수정

 

* 해결 방법

파일 형식 주의

C++클래스를 불러와 사용할 곳의 파일 형식을 위처럼 .mm으로 바꿔주시면 해결됩니다. 

좀 다르게 생겼습니다.

.mm 은 위 사진처럼 아이콘이 살짝 다르게 생겼습니다. 

이렇게 바뀐거면 잘 바뀐겁니다. 

 

* 원인

C++ 의 경우 그냥 ObjC에 바로 사용할 수 없고 ObjC++ 로 해야 사용이 가능하기 때문에

위 같은 현상이 발생하는 것 같습니다.

 

비슷한 오류로 헤메시는 분들이 계실까봐 올려봅니다. 

 

오늘도 파이팅입니다.