如何添加UIRefreshControl

时间:2014-08-06 07:11:56

标签: ios uitableview uirefreshcontrol

我想将UIRefreshControl添加到我的应用程序,该应用程序在下拉表时从数据库中获取记录,我已完成以下代码,但它给出了我的错误

2014-08-06 12:31:56.263 QuizUsindDB[1183:60b] -[ScoreViewController readScoreFromDatabase]: unrecognized selector sent to instance 0x8d3d8e0
2014-08-06 12:31:56.266 QuizUsindDB[1183:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ScoreViewController readScoreFromDatabase]: unrecognized selector sent to instance 0x8d3d8e0'
*** First throw call stack:
(
    0   CoreFoundation                      0x018f81e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x016778e5 objc_exception_throw + 44
    2   CoreFoundation                      0x01995243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x018e850b ___forwarding___ + 1019
    4   CoreFoundation                      0x018e80ee _CF_forwarding_prep_0 + 14
    5   libobjc.A.dylib                     0x0168982b -[NSObject performSelector:withObject:] + 70
    6   UIKit                               0x003393b9 -[UIApplication sendAction:to:from:forEvent:] + 108
    7   UIKit                               0x00339345 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
    8   UIKit                               0x0043abd1 -[UIControl sendAction:to:forEvent:] + 66
    9   UIKit                               0x0043afc6 -[UIControl _sendActionsForEvents:withEvent:] + 577
    10  UIKit                               0x0043ac06 -[UIControl sendActionsForControlEvents:] + 48
    11  UIKit                               0x00a227e9 -[UIRefreshControl _setRefreshControlState:notify:] + 404
    12  UIKit                               0x00a22650 -[UIRefreshControl setRefreshControlState:] + 48
    21  CoreFoundation                      0x0195d43e __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14
    22  CoreFoundation                      0x0189e5cb __CFRunLoopRun + 1963
    23  CoreFoundation                      0x0189d9d3 CFRunLoopRunSpecific + 467
    24  CoreFoundation                      0x0189d7eb CFRunLoopRunInMode + 123
    25  GraphicsServices                    0x038ec5ee GSEventRunModal + 192
    26  GraphicsServices                    0x038ec42b GSEventRun + 104
    27  UIKit                               0x00337f9b UIApplicationMain + 1225
    28  QuizUsindDB                         0x0001038d main + 141
    29  libdyld.dylib                       0x01e41701 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

上面给出了UIRefreshControl的代码:

-(void)pullToRefresh
{
    self.refreshControl = [[UIRefreshControl alloc] init];
    self.refreshControl.tintColor = [UIColor blackColor];
    [self.refreshControl addTarget:self action:@selector(readScoreFromDatabase)
                  forControlEvents:UIControlEventValueChanged];
    [self.myTable addSubview:self.refreshControl];
    [self.refreshControl endRefreshing];

}

我在viewDidLoad中调用了[self pullToRefresh]。

我有上面的代码用于初始化和调用选择器来刷新表。 我无法识别错误,任何人都可以指出我的错误。

1 个答案:

答案 0 :(得分:0)

更改此行:

[self.refreshControl endRefreshing];

对此:

[self.refreshControl beginRefreshing];

在您的表视图在必要时重新加载数据后,应调用endRefreshing方法。

此外,崩溃日志表明您的-[ScoreViewController readScoreFromDatabase]:功能不存在。