0

我正在从不同的来源发出多个请求,因此我想在下面创建的 NSArray resultsTwitter 中添加一个属性,例如:'"newsSource" = twitter'(JSON 格式)。原因是我希望能够唯一地处理每个“newsitem”。

我是块新手,但我认为这可能是“即时”执行此操作的一种非常简单的方法? 如果在块操作中不可能,关于操作完成后如何做的任何建议?

    // Fetch data from Twitter (json complient)
NSURLRequest *request = [NSURLRequest requestWithURL:urlTwitter];
AFJSONRequestOperation *operation;
operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                                            success:^(NSURLRequest *req, NSHTTPURLResponse *responce, id jsonObject) {
                                                                NSLog(@"Responce: %@",jsonObject);
                                                                self.resultsTwitter = [jsonObject objectForKey:@"results"];
                                                                [self.tableView reloadData];    
                                                            }
                                                            failure:^(NSURLRequest *req, NSHTTPURLResponse *responce, NSError *error, id jsonObject) {
                                                                NSLog(@"Recieved an HTTP %d", responce.statusCode);
                                                                NSLog(@"The error was: %@",error);
                                                            }];

[operation start];
4

2 回答 2

0

我可能没有正确理解您的问题,但只要resultsTwitter是 a NSMutableArray,您就可以在最初填充对象后添加一个对象(在您的情况下是一个NSDictionary带有单个 KVP 的对象)。

就像是:

[resultsTwitter addObject:[NSDictionary dictionaryWithObjectsAndKeys:
                            @"twitter", @"newsSource",
                            nil]];

实例化可以在块内访问的变量的示例:

__block NSString *newssource = @"";

NSURLRequest *request = [NSURLRequest requestWithURL:urlTwitter];
AFJSONRequestOperation *operation;
operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                                            success:^(NSURLRequest *req, NSHTTPURLResponse *responce, id jsonObject) {
                                                                NSLog(@"Responce: %@",jsonObject);
                                                                self.resultsTwitter = [jsonObject objectForKey:@"results"];
                                                                [self.tableView reloadData];
                                                                newssource = @"twitter";


                                                            }
                                                            failure:^(NSURLRequest *req, NSHTTPURLResponse *responce, NSError *error, id jsonObject) {
                                                                NSLog(@"Recieved an HTTP %d", responce.statusCode);
                                                                NSLog(@"The error was: %@",error);
                                                            }];

[operation start];
于 2012-10-22T14:26:57.100 回答
0

创建一个模型类来封装所有新闻项目的行为。

此模式用于 AFNetworking 示例应用程序,每个 App.net 帖子对应一个模型对象,该模型对象是从 JSON 初始化的。我强烈建议不要使用可变字典而不是模型对象作为表示项目的方法。

于 2012-10-30T06:58:49.303 回答