我的问题非常简单,我确信它的解决方案也很简单,但我只是不知道,我无法在网上找到解决方案。
这是我的代码:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager GET:@"http://api.dndzgz.com/services/bus" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
//NSLog(@"JSON: %@", responseObject);
NSArray *locationsArray = [responseObject objectForKey:@"locations"];
for (NSDictionary *location in locationsArray) {
NSString *stopId = [location objectForKey:@"id"];
NSString *stopTitle = [location objectForKey:@"title"];
CLLocationDegrees latitude = [[location objectForKey:@"lat"] doubleValue];
CLLocationDegrees longitude = [[location objectForKey:@"lon"] doubleValue];
BusStop *stop = [[BusStop alloc] init];
stop.name = stopTitle;
stop.number = stopId;
stop.latitude = latitude;
stop.longitude = longitude;
[self.stopsArray addObject: stop];
}
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
基本上,当我在成功块中检查时,stopsArray会被填充,但是当我稍后尝试使用它时,它是一个空数组。
我该如何解决这个问题?
谢谢
答案 0 :(得分:0)
试试这个:
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
希望它有所帮助。
答案 1 :(得分:0)
self.stopsArray
不是块变量。您需要声明一个数组的块变量。正确的代码如下:
1. __block NSMutableArray *tmpArray = [NSMutableArray array];
在AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
上方添加此行代码
2. [tmpArray addObject: stop]; self.stopArray = tmpArray;
替换此行代码[self.stopsArray addObject: stop];