我想从cpp类添加通知中心,是否可能????
如果是这样,我该怎么办?
Manager.h
class Manager
{
Manager();
};
Run Code Online (Sandbox Code Playgroud)
Manger.mm文件
Manager:Manager()
{
[[NSNotificationCenter dafaultCenter] addObserver:self selector:@selector(workermethod) name:@" Name" object:(id)nil];
}
Run Code Online (Sandbox Code Playgroud)
我的编译器给出了一个错误,说自己没有声明.......是的,我知道这是一个明显的错误.
因为我不是从NSObject派生的....请告诉我是否可以在Cocoa中添加通知中心到cpp类?
不,你做不到.
Objective-C和C++类层次结构是分开的.在C++上下文中,self未定义但this已定义.在Objective-C上下文中,this未定义且self是.
另外,addObserver需要一个id参数.C++对象实例不被认为是类型,id因此即使您将代码更改为pass this而不是self它也不会编译.
请参阅Objective-C编程语言手册中的C++限制.
解决方法是,创建一个Objectve-C类,它具有您希望通知的C++对象实例,并在Objective-C对象获取通知时简单地调用C++方法.
| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |