Я пытаюсь написать этот заголовочный файл:Как справиться с прямой декларацией/#import в Cocoa Touch (Objective-C cross C++) правильно?
//@class AQPlayer;
//#import "AQPlayer.h"
@interface AQ_PWN_iPhoneViewController : UIViewController {
AQPlayer* player;
}
@end
AQPlayer является .mm файл, написанный на C++.
Я попытался сделать опережающее объявление класса здесь, но он жалуется мне:
error: cannot find interface declaration for 'AQPlayer'
Так что я попытался заголовочный файл «#import» вместо этого, но он жалуется на что-то полностью покинуть и странно , Вот кусочек ошибки жаловался:
В файле включены из
/Users/akaraphan/Desktop/SpecialTopic1/AQ_PWN_iPhone/Classes/AQPlayer.h:51,
from /Users/akaraphan/Desktop/SpecialTopic1/AQ_PWN_iPhone/Classes/AQ_PWN_iPhoneViewController.h:12,
from /Users/akaraphan/Desktop/SpecialTopic1/AQ_PWN_iPhone/Classes/AQ_PWN_iPhoneAppDelegate.m:10:
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:78: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CAStreamBasicDescription'
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:230: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:231: error: expected '=', ',', ';', 'asm' or '__attribute__' before '==' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:233: error: expected '=', ',', ';', 'asm' or '__attribute__' before '!=' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:234: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<=' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:235: error: expected '=', ',', ';', 'asm' or '__attribute__' before '>=' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:236: error: expected '=', ',', ';', 'asm' or '__attribute__' before '>' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:239: error: expected ';', ',' or ')' before '&' token
я упускаю что-то? Разве я не могу сделать это для этого?
Вы должны отредактировать исходный вопрос, а не публиковать его в качестве ответа. Сказав это, как AQPlayer - класс obj-c или C++?Первой декларации, которую вы дали '@class AQPlayer;' для Obj-C, но ваш метод вызывает 'player-> StartQueue (false);' - синтаксис C++. Либо вы хотите «класс AQPlayer;» для C++, либо '[player startQueue: NO];' для Obj-C. –