如何在objective-c函数中返回一个c++指针
how to return a c++ pointer in objective-c function
In.mm文件
#import "OCClass.h"
#import "CPPClass.h"
@interface OCClass()
@property (nonatomic, readwrite) CPPClass* cppClass;
@end
@implementation OCClass
-(void*)getObject
{
return cppClass;
}
@end
getObject方法是一个公共方法,它在头中定义,我想返回cppClass*而不是void*类型的cppClass对象。但是我不能在objective-c头中包含cpp头。我该怎么办?
您可以在Objective-C.h文件中转发声明C++类:
// OCClass.h
#import <Foundation/Foundation.h>
class CPPClass;
@interface OCClass : NSObject
-(CPPClass*)getObject;
@end
这样,您就不必在Objective-C.h文件中包含C++.h文件,而且所有内容都可以正确编译和工作。(注意,您只能将这个头文件#import
转换为.mm文件。)此外,您的getObject方法应该是:
-(CPPClass*)getObject
{
return self.cppClass;
}
或
-(CPPClass*)getObject
{
return _cppClass;
}
这取决于您是否要调用getter。
相关文章:
- 修改函数中的指针(将另一个指针作为参数传递)
- 将指针分配给另一个指针时会发生什么情况?
- C++将一个指针分配给另一个指针时执行的类型检查
- 更改一个指针后更改乘法对象
- 从另一个指针指向函数的指针
- 有没有办法在同名类 (c++) 中为对象分配一个指针变量
- 为什么通过定义另一个指针单元格,整个代码停止工作?
- C:试图将指针值复制到另一个指针中,得到可修改的左值错误
- C++ typedef 函数指针,并在一个语句中声明一个指针
- 一个对象的两个指针.删除了一个指针,对象仍然存在
- 如何获得GUID编码器,如果我在IMFTransform上有一个指针?
- 我不明白我的错误需要返回一个指针数组
- 使用 SFINAE 测试是否可以将一个指针类型static_cast到另一个指针类型
- 将指针分配给另一个指针时会发生什么情况?
- 如何保存指针地址,以便另一个指针可以继续处理它
- 为什么 std::span 是一个指针 + 大小而不是两个迭代器
- 类的成员应该是一个指针
- 隐式指针变量,在自动定义中具有另一个指针变量
- 利用双重链接列表中的下一个指针
- 你能把一个指针投射到数组中吗?