Tuesday, 15 March 2011

objective c - iOS delegation doesn't work -



objective c - iOS delegation doesn't work -

i'm trying implement delegate method between 2 classes in app delegated method not called.

here code :

pbpartnersservice.h

@protocol pbpartnersservicesdelegate <nsobject> @required -(void) didreceivenewsdatasfrompartners:(nsdictionary *)datas; @end

then create @property :

@interface pbpartnersservices : nsobject @property (nonatomic, weak) id<pbpartnersservicesdelegate> delegate; @end

in pbpartnersservice.m phone call delegate method (when print self.delegate 'nil') :

if ([self.delegate respondstoselector:@selector(didreceivenewsdatasfrompartners:)]) { [self.delegate didreceivenewsdatasfrompartners:obj]; }

in other class pbticketsservice.h instantiate first 1 :

@interface pbticketsservice : nsobject <pbpartnersservicesdelegate> @property (nonatomic,strong) nsdictionary *ticketlist; @property (nonatomic, strong) pbpartnersservices *partnersservices; - (void) preparefordelegate; @end

i made method in pbticketsservice.m set partnersservices delegate :

- (void) preparefordelegate{ self.partnersservices = [[pbpartnersservices alloc] init]; [self.partnersservices setdelegate:self]; }

and have function never phone call :

-(void) didreceivenewsdatasfrompartners:(nsdictionary *)datas{ }

you should utilize dependency injection: either add together ticketsservice argument of partnerservices constructor, or opposite.

ios objective-c delegates

No comments:

Post a Comment