1

原始文件定义:

#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 对两者都有效。

4

2 回答 2

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用作请求的 URL。

于 2013-05-10T19:46:42.613 回答
1

如果需要url在运行时更改。您必须创建 的实例变量NSUrl

NSURLNSURL *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];
}
于 2013-05-10T20:01:50.257 回答