Objective-C协议代表不起作用



我想从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实例,将它们简化为一个实例解决了问题。

最新更新