2013-01-17 11 views
12

ja ćwiczyłem C++. po prostu dodajemy pliki C++ w XCode i zapisuję w nim pewną funkcję dzielenia łańcucha. Następnie włączam ten plik C++, tj. Rozszerzenie pliku .mm w moim pliku AppDelegate i wywołanie funkcji z pliku .h klasy C++. Ale znalazłem jeden błąd statyczny w czerwonej linii, który jest "nie znaleziono pliku" iostream ". Użyłem najnowszej wersji XCode 4.5 i iOS 6.0. Proszę zobaczyć zrzut ekranu mojego błędu lub ekranu xcode. enter image description hereNie znaleziono błędu pliku "iostream" w Xcode 4.5?

Próbowałem zmodyfikować mój kod na dane link informacji, ale bez powodzenia. :(

również i po tej link informacji, jak również, ale wynik jest taki sam.

Dzięki iHungry

+0

Nie należy '# include' kodu C++ z nagłówka, który musi działać w Objective-C. (Twój problem może polegać na tym, że dołączasz 'StringSplit.h' w pliku' .m' gdzieś.) – Mankarse

+0

@Mankarse, przepraszam, że cię nie dostałem. Muszę dołączyć plik klasy C++ do klasy Objective-C. Robię to, ale rzuca mi to dodatkowy błąd. – Tirth

+0

Jeśli 'StringSplit.h' to Objective-C++ (w przeciwieństwie do Objective-C), powinieneś włączyć go tylko z plików' .mm', a nigdy '.m'. –

Odpowiedz

10

Objective C mający .m rozszerzenia swoich plików realizacji. Jeśli chcesz użyć C++ w Objective C powinno mają rozszerzenia .mm.Możesz zawrzeć pliki nagłówkowe C++ w pliku .mm. Ale jeśli chcesz dołączyć pliki nagłówkowe C++ do pliku .h, musisz sprawdzić macro za to, jak

#ifdef __cplus 
#include <iostream> 
#endif 

Ale nie próbowałem żadnych funkcji, włączając w nagłówku pliku C++.h pliku. Mam nadzieję, że to pomoże.

+0

+1 ........  – TheTiger

+1

Możesz nawet używać plików C z .C –

+0

@AnoopVaidya, tak, możemy. Ale zgodnie z moim wymaganiem muszę wykonać taką funkcjonalność w C++. – Tirth