Делегат протокола Objective C не работает

1

Я хочу отправить массив объектов в myViewController из myRenderer

В myRenderer.h:

@protocol myProtocol;

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

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

В myRenderer.mm(C++/object-c code):

@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 никогда не вызывается.

Спасибо за любую помощь.

  • 0
    Вы можете опубликовать объявление объекта renderer в вашем ViewController ?
  • 1
    Попробуйте заменить это - слабым сильным в myreneder.h
Показать ещё 19 комментариев
Теги:
delegates
protocols

1 ответ

0
Лучший ответ

Решено!

@CRD благодарим вас за подсказку!

На самом деле было несколько экземпляров MyRender, что сводило их к одному экземпляру, решив проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню