如何让我的viewcontroller成为C ++编写主题的观察者

时间:2016-03-30 19:40:58

标签: c++ ios objective-c

让我们说我在c ++中有一个观察者模式代码。与此处的代码非常相似:Observer pattern

如何让ViewController或Objective-C类成为用c ++编写的主题的观察者?

赞赏任何代码示例,

干杯

1 个答案:

答案 0 :(得分:1)

Objective-C ++和C ++都不能相互继承,你必须创建代理类来互相交流。

小例子,如果你想从Objective-C ++调用C ++方法。

class Foo : public IObserver {
    virtual void bar(int i) { printf("i is %d\n", i); } override;
};

@interface Baz : NSObject {
@public
     void* foo;
}
@end

@implementation Baz
- (id)init {
    self = [super init];
    if (self) {
        foo = new Foo();
    }
    return self;
}

- (void)dealloc {
    delete foo;
    [super dealloc];
}

- (void)barHappened:(int)i {
    foo->bar(i);
}
@end