Я пытаюсь передать некоторые данные обратно в мой контроллер представления из класса объекта.
Это базовое представление о том, что делают классы и представления, и затем я покажу вам свой код.
Итак, ViewController загружает свои табличные ячейки.Затем внутри этого метода делегата он вызывает класс соединения, который я создал, внутри этого класса соединения есть методы NSURLConnection, соединяющие и загружающие данные из базы данных, в методе connectionDidFinishLoading этого класса соединения я устанавливаю класс синтаксического анализа и передаю все загруженные данные.к этому.Затем я анализирую эти данные, и в конце этого парсера внутри parserDidEndDocument я пытаюсь отправить данные, которые теперь находятся в переменной массива, обратно в мой контроллер представления для отображения.Однако .. почему-то мои протоколы и делегаты не работают.Я установил протоколы внутри класса m parser и установил делегаты в моем контроллере представления, но он никогда не дойдет до моего метода протокола.
Я покажу вам мой код ниже.
parserclass.h
@protocol PassParsedData <NSObject>
@required
- (void)sendManufactureArray:(NSArray *)array;
@end
//..
id <PassParsedData> delegate;
//..
@property (strong) id delegate;
//
parserclass.m
#import "VehicleSearchViewController.h"
//..
@synthesize delegate;
//..
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
//.. array stuff is set up and i can log it so i know its working.. i just want to show you the protocol and delegate stuff to be clear
[[self delegate]sendManufactureArray:filteredArray];
}
Затем переходим к моему контроллеру представления, где я надеюсь вызвать протокол и получить обратно данные отфильтрованного массива.
ViewController.h
#import "EngineResponses.h" //delegates & protocols
//..
@interface SearchViewController : UITableViewController <PassParsedData> {
//..
Viewcontroller.h
#import "EngineResponses.h"
//..
- (void)viewDidLoad
{
[super viewDidLoad];
//..
parserClass *pc = [[parserClass alloc] init];
[pc setDelegate:self];
//..
}
- (void)sendManufactureArray:(NSArray *)array //Breakpoint here is never accessed
{
FilterArray = array;
[self.tableView reloadData];
}
Как вы можете видеть в последнем методе, который является протоколом, который я вызываю, поток никогда не обращается к нему.Я проверил, этот вызов
[[self delegate]sendManufactureArray:filteredArray];
получает доступ нормально ... но он просто никогда не возвращается к контроллеру представления ... какие-то идеи ... я что-то упустил?... я в полной растерянности, работаю над этим весь день.
любая помощь будет с благодарностью оценена!:)
ОБНОВЛЕНИЕ:
Я добавил это в свой ViewController.h
//..
ParserClass *parserclass;
//..
@property (strong, nonatomic) ParserClass *parserclass;
//..
viewcontroller.m
@synthesize parserclass;
//..
//then I call this in viewdidload
[engineResponses setDelegate:self];