Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 什么原因导致我的应用程序在返回屏幕时崩溃?_Ios_Objective C_Xcode_Uitableview_Nsmutablearray - Fatal编程技术网

Ios 什么原因导致我的应用程序在返回屏幕时崩溃?

Ios 什么原因导致我的应用程序在返回屏幕时崩溃?,ios,objective-c,xcode,uitableview,nsmutablearray,Ios,Objective C,Xcode,Uitableview,Nsmutablearray,我有使用自定义类的UITableView中的视频列表。这是tabbar应用程序。当我向下滚动到第8个视频,转到下一个屏幕,当我回到视频列表屏幕时,应用程序崩溃。我试图调试,但无法找出问题所在。这是我从调试器得到的 2016-06-08 12:47:46.919 Votocast[2283:453809] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objec

我有使用自定义类的UITableView中的视频列表。这是tabbar应用程序。当我向下滚动到第8个视频,转到下一个屏幕,当我回到视频列表屏幕时,应用程序崩溃。我试图调试,但无法找出问题所在。这是我从调试器得到的

2016-06-08 12:47:46.919 Votocast[2283:453809] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 8 beyond bounds for empty array'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000108ba9d85 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x000000010a7f9deb objc_exception_throw + 48
    2   CoreFoundation                      0x0000000108a87804 -[__NSArrayM objectAtIndex:] + 212
    3   Votocast                            0x0000000107dfd4de -[HomeView tableView:cellForRowAtIndexPath:] + 958
    4   UIKit                               0x000000010b6914f4 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 766
    5   UIKit                               0x000000010b69162c -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 74
    6   UIKit                               0x000000010b665c8a -[UITableView _updateVisibleCellsNow:isRecursive:] + 2799
    7   UIKit                               0x000000010b69a686 -[UITableView _performWithCachedTraitCollection:] + 92
    8   UIKit                               0x000000010b681344 -[UITableView layoutSubviews] + 224
    9   UIKit                               0x000000010b5ee980 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 703
    10  QuartzCore                          0x0000000109ff1c00 -[CALayer layoutSublayers] + 146
    11  QuartzCore                          0x0000000109fe608e _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
    12  QuartzCore                          0x0000000109fe5f0c _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    13  QuartzCore                          0x0000000109fda3c9 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
    14  QuartzCore                          0x000000010a008086 _ZN2CA11Transaction6commitEv + 486
    15  UIKit                               0x000000010b52e72e _UIApplicationHandleEventQueue + 7135
    16  CoreFoundation                      0x0000000108acf301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    17  CoreFoundation                      0x0000000108ac522c __CFRunLoopDoSources0 + 556
    18  CoreFoundation                      0x0000000108ac46e3 __CFRunLoopRun + 867
    19  CoreFoundation                      0x0000000108ac40f8 CFRunLoopRunSpecific + 488
    20  GraphicsServices                    0x000000010d4ebad2 GSEventRunModal + 161
    21  UIKit                               0x000000010b533f09 UIApplicationMain + 171
    22  Votocast                            0x0000000107e48d8f main + 111
    23  libdyld.dylib                       0x000000010cc0792d start + 1
    24  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
在ViewWillDisplay中,我从该数组中删除所有对象并调用webservice。但在我从webservice得到响应之前,应用程序崩溃到CellForRowatineXpath中的一行。你的小小帮助将不胜感激

编辑:


我注意到,只有当我的tableview减速,我转到下一个屏幕并返回到视频列表屏幕时,应用程序才会崩溃。我还没有编写任何关于减速的代码。

很明显,您的数据源代理工作不正常。如果清空数据源使用的数组,则必须调用reloadData。当您获得新数据时,您再次调用reloadData


但是,您不应该以这种方式刷新数据。在新数据到达之前,应显示旧数据

显然,您的数据源代理工作不正常。如果清空数据源使用的数组,则必须调用reloadData。当您获得新数据时,您再次调用reloadData


但是,您不应该以这种方式刷新数据。在新数据到达之前,应显示旧数据

清除viewWillExample方法中数组中的所有对象,但之后是否重新加载tableview

因为这会导致撞车。删除所有对象,但tableview尝试转到最后一个滚动索引。所以它导致了坠机


希望这将对您有所帮助。

您清除了ViewWillExample方法中数组中的所有对象,但之后是否重新加载tableview

因为这会导致撞车。删除所有对象,但tableview尝试转到最后一个滚动索引。所以它导致了坠机


希望这能对你们有所帮助。

谢谢你们。我修好了。我实际上是在viewDidLoad中分配数组,只是在ViewWillDisplay中从该数组中删除对象。所以我保留了我的数据,并且不会在viewwillbeen中调用webservice

谢谢大家。我修好了。我实际上是在viewDidLoad中分配数组,只是在ViewWillDisplay中从该数组中删除对象。所以我保留了我的数据,并且不会在viewwillbeen中调用webservice

你的阵列是空的,这就是它的崩溃。尝试将值放入下面方法中的数组中--voidViewWillDisplay:BOOLanimated{这可能会对您有所帮助。噢……您的数组没有得到维护。请在代码中处理它。尝试在ViewDidLoad中添加数组中的所有对象。还要检查您在ViewWill/DidEnglish中对数组执行的操作。您从numberOfRowsInSection返回的值是什么?当您删除所有数组值时,是否立即在tableview上调用reloadData?你可以说哪个地方要崩溃你的应用..但你找不到那个地方???给出你的快速修复代码你的数组是空的,这就是崩溃。试着把数组中的值放在下面的方法中--voidViewWillDisplay:BOOLanimated{这可能会对您有所帮助。噢……您的数组没有得到维护。请在代码中处理它。尝试在ViewDidLoad中添加数组中的所有对象。还要检查您在ViewWill/DidEnglish中对数组执行的操作。您从numberOfRowsInSection返回的值是什么?当您删除所有数组值时,是否立即在tableview上调用reloadData?你可以说哪个地方会使你的应用程序崩溃。但是你找不到那个地方???给出你的代码以便快速修复