【问题标题】:Using C++ objects/classes with Objective C protocol将 C++ 对象/类与 Objective C 协议一起使用
【发布时间】:2011-04-28 06:19:43
【问题描述】:

您好尝试编译 Objective C++/Protocol 代码,但编译失败并出现错误“Expected declaration specifier before protocol”和以下标头中所有 Objective C 代码行的类似错误。

#import <UIKit/UIKit.h>

#include <Category>

@protocol StoreDelegate <NSObject>
@optional
...//Protocol methods
...
...

@end

@interface Store : NSObject {
    id<StoreDelegate> delegate;
    BOOL downloadFailed;
    Category *currentCategory;
}

@property(nonatomic, assign) id<StoreDelegate> delegate;

+ (Store *)sharedStore;
...//Class methods
...
...
@end

请注意,“Category”是一个 C++ 类。如果我从类中删除与协议相关的代码,那么代码编译得很好。有没有办法重组上面的代码并让它编译?

【问题讨论】:

    标签: objective-c++


    【解决方案1】:

    您可能将该标头包含在纯 C++ 源文件中。通过将扩展名更改为 .mm 或在信息窗口的常规选项卡中将文件类型更改为 sourcecode.cpp.objcpp,确保包含该标头的所有文件都编译为 Objective-C++。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 2011-06-05
      • 2021-09-23
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多