我的 .h 文件:
#import <UIKit/UIKit.h>
#import "ServiceConnector.h"
@interface PartnerTableController : UITableViewController <ServiceConnectorDelegate>
@property (nonatomic, retain) IBOutlet NSMutableArray *allPartners;
- (IBAction)download:(id)sender;
@end
我的 .m 文件的一部分:
- (void)viewDidLoad
{
[super viewDidLoad];
[self download:self];
}
...
- (IBAction)download:(id)sender { //perform get request
ServiceConnector *serviceConnector = [[ServiceConnector alloc] init];
serviceConnector.delegate = self;
[serviceConnector download];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
NSLog(@"count allpartners: %d", [allPartners count]);
return [allPartners count];
}
问题是numberOfRowsInSection
返回 0,因为下载我的 JSON-String、创建一个对象并将其放入 NSMutableArray 需要一段时间allPartners
。我可以以某种方式阻止该方法download
吗?
更新:allPartners
由这种方法填充:
[serviceConnector download];
-(void)download{
//build up the request that is to be sent to the server
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.bala.com"]];
[request setHTTPMethod:@"GET"];
[request addValue:@"getValues" forHTTPHeaderField:@"METHOD"]; //selects what task the server will perform
//initialize an NSURLConnection with the request
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if(!connection){
NSLog(@"Connection Failed");
}
}