UIRefreshControl - 由于未捕获的异常而终止应用程序

时间:2013-03-23 05:25:06

标签: objective-c uirefreshcontrol

我在UITableViewController内的Table View上实现了UIRefreshControl。今天我的朋友(第一个测试人员)正在使用该应用程序,他能够通过拉动刷新而使其崩溃,同时它很清爽,再次快速拉动它几次。我知道这不是常见的事情,但我可以很容易地重新创建它。我猜测我实现刷新控件的方式有问题,因为我尝试使用Gmail应用程序重新创建它并且它没有崩溃。

这是我得到的错误:

  

[1008:907] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [__ NSCFConstantString stringByAppendingString:]:nil参数'    * 第一次抛出调用堆栈:   (0x343f32a3 0x3c08d97f 0x343f31c5 0x34c5c5e1 0x496b5 0x3624654d 0x3622b313 0x362427cf 0x361fe803 0x35fa8d8b 0x35fa8929 0x35fa985d 0x35fa9243 0x35fa9051 0x35fa8eb1 0x343c86cd 0x343c69c1 0x343c6d17 0x34339ebd 0x34339d49 0x37efb2eb 0x3624f301 0x46da5 0x3c4c4b20)   libc ++ abi.dylib:terminate调用抛出异常   (lldb)

在ViewDidLoad

// pull to refresh
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(updateTableView:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refreshControl];

这是updateTableView方法:

- (void)updateTableView:(id)sender {

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"MMM d, h:mm:ss a"];
    NSString *lastUpdated = [NSString stringWithFormat:@"Last updated on %@", [formatter stringFromDate:[NSDate date]]];

    self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:lastUpdated];

    if(topOptions.selectedSegmentIndex  == 0) {
        //fetch the feed
        _feed = [[FetchData alloc] initFromURLWithString:@"some json file" completion:^(JSONModel *model, JSONModelError *err) {

            [self.tableView reloadData];
            [(UIRefreshControl *)sender endRefreshing];
        }];
    } else if (topOptions.selectedSegmentIndex  == 1) {
        //fetch the feed
        _feed = [[FetchData alloc] initFromURLWithString:@"another json file" completion:^(JSONModel *model, JSONModelError *err) {

            [self.tableView reloadData];
            [(UIRefreshControl *)sender endRefreshing];
        }];

    }
}

我猜测(来自nil参数)通过多次执行刷新请求它到达了无法找到值的点?我对此很新,所以任何想法都非常感激。

如果您需要代码的任何其他部分,请告诉我。

0 个答案:

没有答案