I am creating a protocol like this.
@protocol parsingComplete <NSObject>
@optional
-(void) updateUI:(NSMutableDictionary*)foodList;
@end
@interface foodParser:NSObject<NSXMLParserDelegate>
@property(nonatomic, weak) id<parsingComplete> delegate;
@end
After parsing complete I want this delegate to trigger. so i am doing something like this.
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
if (delegate)
{
[delegate updateUI:food];
}
}
Here the delegate value is nil
. Anyone understand the source of this problem.
And i am invoking my delegate like this. here is .h file {
@interface NHMainViewController : UIViewController<parsingComplete>
@property(nonatomic, strong)ATAFoodParser *foodParser;
@end
}
here is .m file
{
@implementation NHMainViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.foodParser = [[ATAFoodParser alloc] init];
self.foodParser.delegate = self;
// Do any additional setup after loading the view.
}
-(void) updateUI:(NSMutableDictionary*)foodList{
NSLog(@"Dictionary:---->%@", foodList);
}
@end
}
updateUI is a my delegate method, which should get invoked. i am not getting call back here. i went to my first class where i have created my protocol, i printed delegate.. it is nil..