我想从myRenderer发回一组对象到myViewController

在myRenderer.h中:

@protocol myProtocol;

@interface myRenderer : NSObject
     @property (weak) id <myProtocol> myDelegate;
@end

@protocol myProtocol <NSObject>
     - (void)sendToMyViewController : (NSMutableArray *) objects;
@end

在myRenderer.mm(C++ / objective-c代码)中:
@implementation myRenderer

@synthesize myDelegate;
.
.
.
-(void) sendObjects
{
    [myDelegate sendToMyViewController : objects];

    Problem:
    myDelegate is always <nil>; = (id) 0x0

}
.
.
.
@end

在myViewController.h中:
@interface myViewController : UIViewController <myProtocol>
.
.
.
@end

在myViewController.m中:
@implementation myViewController
.
.
.
- (void)viewDidLoad
{
    renderer = [[MyRenderer alloc] init];
    renderer.myDelegate = self;
}
.
.
.

-(void) sendToMyViewController : (NSMutableArray *) objects
{
    // do something with objects

    Problem:
    this method is never called !!!
}
.
.
.
@end

问题:
myDelegate始终为零;等于(id)0x0并且
sendToMyViewController从未调用过。

感谢您的任何帮助。

最佳答案

解决了!

@CRD谢谢您的提示!

实际上有多个MyRender实例,将它们简化为一个实例即可解决该问题。

关于c++ - Objective-C协议(protocol)委托(delegate)不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47991164/

10-12 03:35