Objective-C协议委托不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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实例,将它们缩减为单个实例解决了问题。
以上是关于Objective-C协议委托不起作用的主要内容,如果未能解决你的问题,请参考以下文章
委托/协议不起作用:将数组从 TableViewController 传递给父 ViewController