[英]Objective-C protocol delegate not working
I want to send back an array of objects to myViewController from myRenderer 我想从myRenderer发回一组对象到myViewController
In myRenderer.h: 在myRenderer.h中:
@protocol myProtocol;
@interface myRenderer : NSObject
@property (weak) id <myProtocol> myDelegate;
@end
@protocol myProtocol <NSObject>
- (void)sendToMyViewController : (NSMutableArray *) objects;
@end
In myRenderer.mm (C++ / objective-c code): 在myRenderer.mm(C ++ / objective-c代码)中:
@implementation myRenderer
@synthesize myDelegate;
.
.
.
-(void) sendObjects
{
[myDelegate sendToMyViewController : objects];
Problem:
myDelegate is always <nil>; = (id) 0x0
}
.
.
.
@end
in myViewController.h: 在myViewController.h中:
@interface myViewController : UIViewController <myProtocol>
.
.
.
@end
in myViewController.m: 在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
Problem: myDelegate is always nil; 问题:myDelegate始终为零; equal to (id) 0x0 and sendToMyViewController never called.
等于(id)0x0,并且从未调用sendToMyViewController。
Thank you for any help. 感谢您的任何帮助。
Solved! 解决了!
@CRD thank you for the hint! @CRD谢谢您的提示!
There was indeed multiple MyRender instances, reducing them to a single instance solved the problem. 实际上有多个MyRender实例,将它们简化为一个实例即可解决该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.