繁体   English   中英

Objective-C ++如何在C ++类中添加方法

[英]objective-c++ how to add method into c++ class

我想有一个API风格的功能。 但是实现必须在Objective-C lang上。 因此,我阅读了一些信息并决定执行以下操作-将Objective-C与C ++混合使用。 并且在调用C ++类中的objC方法时遇到问题。 那就是我的例子:

//MYClass.h :

class CClass
{
private:
 id fileName;
 BOOL rez;
public: 
 bool download(char* initial_file_name)
 {
  fileName = [[NSString alloc] initWithUTF8String:initial_file_name];
  // here I'd like to call my obj-c method
  ObjCClass c = [[ObjCClass alloc] init] 
  rez = [c writeFile:fileName];
  if (rez == YES)
   return true;
  return false;
 }
};

@interface ObjCClass: NSObject
{
     CClass *cClass;
}

    - (BOOL) writeFile:(NSString *)fileName;
@end

像这样

您要在其中创建Objective-C类实例的行是错误的,其中有一个'*'和';'。 缺少,它应该看起来像这样:

ObjCClass *c = [[ObjCClass alloc] init];

您还需要在C ++类的前面为Objective-C类添加一个前向声明:

@class ObjCClass;

这些更改将使代码可编译,但是您仍然会收到警告。 要解决这些问题,您必须将Objective-C类移到开头,然后在之前声明C ++类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM