我想从 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/