UITableView reloadData

时间:2016-02-15 05:58:41

标签: ios objective-c uitableview exc-bad-access crashlytics

我有一段时间遇到这个问题而且它让我疯了。据Crashlytics报道,但仅限少数用户使用。我自己无法重现这个问题。

我使用SplitViewController,这是在用户在UIViewController中添加数据并触摸保存按钮后发生的,然后返回到SplitViewController以执行方法' saveItemEntry'如下所示。

我已经尝试过上一篇文章的建议,即使用dispatch_async(dispatch_get_main_queue(),^(void)包装[self.tableView reloadData],但这实际上使它变得更糟。它不是'这些数据需要花费很长时间才能加载,但事实并非如此,因此我无法看到多任务处理会有所帮助,但我可以就是否应该这样做提出建议。

我真的不清楚如何穿插崩溃信息。如果有人可以并且可以建议可能导致这种情况的原因那么棒。

如果需要更多信息,请告知我们。

以下是坠机详情:
enter image description here

这里是Raw的东西......

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x20407ae2 objc_msgSend + 1
1  CoreFoundation                 0x20b8391b -[NSDictionary    descriptionWithLocale:indent:] + 310
2  Foundation                     0x2136fe2d _NSDescriptionWithLocaleFunc + 60
3  CoreFoundation                 0x20c011a3 __CFStringAppendFormatCore + 7986
4  CoreFoundation                 0x20bff255 _CFStringCreateWithFormatAndArgumentsAux2 + 80
5  CoreFoundation                 0x20c17559 _CFLogvEx2 + 96
6  CoreFoundation                 0x20c179af _CFLogvEx3 + 118
7  Foundation                     0x214374f7 _NSLogv + 126
8  Foundation                     0x2137e79d NSLog + 28
9  UIKit                          0x24eac5fb -[UITableView reloadData] + 1818
10 Simple Meeting Minutes         0xfb859 -[MMDetailTableVC saveItemEntry:] (MMDetailTableVC.m:1423)
11 Simple Meeting Minutes         0x10becf -[MMItemViewController saveButtonAction:] (MMItemViewController.m:526)
12 UIKit                          0x24dfd771 -[UIApplication sendAction:to:from:forEvent:] + 80
13 UIKit                          0x24f7ec71 -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 140
14 UIKit                          0x24dfd771 -[UIApplication sendAction:to:from:forEvent:] + 80
15 UIKit                          0x24dfd701 -[UIControl sendAction:to:forEvent:] + 64
16 UIKit                          0x24de561f -[UIControl _sendActionsForEvents:withEvent:] + 446
17 UIKit                          0x24de574b -[UIControl _sendActionsForEvents:withEvent:] + 746
18 UIKit                          0x24dfd051 -[UIControl touchesEnded:withEvent:] + 616
19 UIKit                          0x24dfccbf -[UIWindow _sendTouchesForEvent:] + 646
20 UIKit                          0x24df55d7 -[UIWindow sendEvent:] + 642
21 UIKit                          0x24dc6119 -[UIApplication sendEvent:] + 204
22 UIKit                          0x24dc4757 _UIApplicationHandleEventQueue + 5134
23 CoreFoundation                 0x20bf1257 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
24 CoreFoundation                 0x20bf0e47 __CFRunLoopDoSources0 + 454
25 CoreFoundation                 0x20bef1af __CFRunLoopRun + 806
26 CoreFoundation                 0x20b41bb9 CFRunLoopRunSpecific + 516
27 CoreFoundation                 0x20b419ad CFRunLoopRunInMode + 108
28 GraphicsServices               0x21dbbaf9 GSEventRunModal + 160
29 UIKit                          0x24e2dfb5 UIApplicationMain + 144
30 Simple Meeting Minutes         0xf5d6f main (main.m:16)
31 libdispatch.dylib              0x207f4873 (Missing)

这是我在这个特定领域的代码..

- (void)saveItemEntry:(MMitem *)item{

    if (item)
    {
        // save item to the sqlite3 database file
        NSString *resultStr = [self.meetingModel saveItem:item];

        if ([resultStr isEqualToString:@"OK"])
        {
            // all good so close form and refresh data

            [self dismissViewControllerAnimated:NO completion:nil];
            [self.tableView reloadData];

            // or if there is an error result then display message
        }
        else if ([resultStr isEqualToString:@"DescriptionNotesMissing"])
        {
            [self showAlert:@"Missing Description or Notes" :@"An Item Description or Notes is required" :0];
            [self.itemViewController.itemDescription becomeFirstResponder];
        }
        // for any other error do nothing
    }
}

0 个答案:

没有答案