пытаясь установить метод делегата для получения данных urlConnection - PullRequest
0 голосов
/ 26 октября 2010

Я ходил по кругу, я пытался использовать этот пример , но столкнулся с проблемой в методе делегата.Я пытаюсь понять, как это закрыть.Похоже, у меня правильно настроены партии, но на последнем шаге мне нужна помощь:

Я получаю - [ThirdTab apiFinished:]: нераспознанный селектор, отправленный экземпляру.

Во второй строке WebServiceAPI.m: self.aDelegate = aDelegate выдает мне ошибку: 2) Локальное объявление переменной экземпляра aDelegate скрывает.

Это мой первый опыт работы сиспользование таких делегатов не может понять эту ошибку.

Спасибо.

Это в моем ThirdTab UITableViewController:

 -(void)viewDidLoad {
      [super viewDidLoad];
      WebServiceAPI *api = [[WebServiceAPI alloc] init];;   
      api.delegate =self;
          [api DataRequest:data3 delegate:self];

  // this is where I'm trying to connect data3 to my tableview.
        self.tableDataSource3 = [data3 objectForKey:@"Rows"];
            self.webApi = api;
        [api release];

Это WebServiceAPI.h:

#import <UIKit/UIKit.h>

@class WebServiceAPI;
@protocol WebServiceAPIDelegate;

@interface WebServiceAPI : NSObject
{ 
    id<WebServiceAPIDelegate>aDelegate;
    NSDictionary *data3;
    NSArray *rowsArrayFamily;
    NSMutableData *receivedData;
    NSString *jsonreturnFF;


 }
 @property (nonatomic, assign) id<WebServiceAPIDelegate>aDelegate;
 @property (nonatomic, retain) NSDictionary *data3;
 @property (retain,nonatomic) NSArray *rowsArrayFamily;
 @property (nonatomic, retain) NSMutableData *receivedData;
 @property (nonatomic, retain) NSString *jsonreturnFF;

 - (void) DataRequest: (id) aDelegate;
 @end

 @protocol WebServiceAPIDelegate
 @required
   -(void)apiFinished:(WebServiceAPI*)api;
   -(void)api:(WebServiceAPI*)api failedWithError:(NSError*)error;
  @end

Вот WebServiceAPI.m, где у меня возникла проблема:

- (void) DataRequest:data3 delegate:(id) aDelegate; {
      self.aDelegate = aDelegate;

        NSUserDefaults *defaultsF = [NSUserDefaults standardUserDefaults];
        NSString *useridFF = [defaultsF objectForKey:kUseridKey];

    NSString *urlstrF = [[NSString alloc] initWithFormat:@"http://www.~.php?userid=%@",useridFF];
    NSURLRequest *req3 =[NSURLRequest requestWithURL:[NSURL URLWithString:urlstrF]];
    NSURLConnection *conn3 = [[NSURLConnection alloc] initWithRequest:req3 delegate:self];

    NSMutableData *data =[[NSMutableData alloc] init];
    self.receivedData = data;   
 // self.connection = conn3;
 }

1 Ответ

0 голосов
/ 26 октября 2010

Ваш WebService.h объявляет свойство:

@property (nonatomic, assign) id<WebServiceAPIDelegate>aDelegate;

Ваш WebService.m использует другое свойство:

self.delegate = aDelegate;

Вы можете изменить имя свойства для делегирования вWebService.h, или используйте текущее имя свойства в WebService.m.

...