Objective-C - 设定后的保留财产为零?

时间:2011-08-02 10:42:54

标签: objective-c delegates null

我有两个班级:

UIViewController和一个子类化NSObject的类,它充当名为OfficesParser的下载帮助程序类。 OfficesParser正在使用ASIHTTPRequest,我将下载请求的委托设置为我的UIViewController。

编辑:UIViewController的界面:

@interface OfficesViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, ASIHTTPRequestDelegate> {

    OfficesParser *officesParser;
}

@property (nonatomic, retain) OfficesParser *officesParser;

@end

在UIViewController实现中,我设置了OfficesParser,如下所示:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.officesParser = [[[OfficesParser alloc] init] autorelease]; // self.officesParser is retained
}

然后在视图出现之前,我调用我的OfficesParser对象为我下载一些数据:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self.officesParser doNetworkOperations];
}

同样在我的UIViewController中,我已经设置了适当的委托方法来处理下载后的数据。特别是我对这个委托方法感兴趣,该方法将在我的下载队列中处理完所有数据后运行。我可以看到委托方法是从日志运行的。但出于某种原因,self.officesParser在这里是零。

- (void)queueFinished:(ASINetworkQueue *)queue {
    DLog(@"queueFinished running");

    [self.officesParser test]; // test will not get called because self.officesParser is nil
}

0 个答案:

没有答案