定义了原始文件:
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define kLatestKivaLoansURL [NSURL URLWithString: @"http://www.myurl.com/.json"];
数据取自:
- (void)fetchedData:(NSData *)responseData {
...并分配给每个单元格:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
要更改正在使用的文件,我试过这个:
- (IBAction)subRedditChange:(id)sender
{
latestKivaLoansURL = [NSURL URLWithString:@"http://reddit.com/r/aww.json"];
[self.tableView reloadData];
}
没有任何反应,.json结构在每个文件中都是相同的,因此fetchedData对两者都有效。
答案 0 :(得分:2)
#define用于常量,因此您想要使用属性:
@interface YOUR_CLASS
...
@property (strong, monatomic) NSURL *latestKivaLoansURL;
...
@end
然后,最初在您设置时:
self.latestKivaLoansURL = [NSURL URLWithString: @"http://www.myurl.com/.json"];
以后,当你想改变时:
self.latestKivaLoansURL = [NSURL URLWithString: @"http://www.newurl.json"];
然后使用self.latestKivaLoansURL
作为请求的网址重新获取您的数据。
答案 1 :(得分:1)
如果您需要在运行时更改url
。您必须创建NSUrl
的实例变量。
在NSURL
中定义NSURL *url
实例.h
。
并在.m
文件覆盖viewDidLoad
方法中设置url
- (void)viewDidLoad
{
//
self.url = [NSURL urlWithString: @"http://www.myurl.com/.json"];
}
当你想用其他网址点击时。
- (IBAction)subRedditChange:(id)sender
{
self.url = [NSURL urlWithString: @"http://www.myurl.com/.json"];
//Call Some method that fetch data from webservice
[self.tableView reloadData];
}