【问题标题】:libc abi.dylib: terminating with uncaught exception of type NSException CollectionViewlibc abi.dylib:以 NSException CollectionView 类型的未捕获异常终止
【发布时间】:2014-10-04 01:46:54
【问题描述】:

当我运行我的应用程序时,我收到了这个错误:

2014-08-11 10:52:10.546 ControlViewTest[918:60b] -[UIViewController collectionView:numberOfItemsInSection:]: 无法识别的选择器发送到实例 0x8c862f0
2014-08-11 10:52:10.605 ControlViewTest[918:60b] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController collectionView:numberOfItemsInSection:]:无法识别的选择器发送到实例 0x8c862f0”
* 首先抛出调用栈:
(
    0 CoreFoundation 0x017ec1e4 异常预处理 + 180
    1 libobjc.A.dylib 0x0156b8e5 objc_exception_throw + 44
    2 核心基础 0x01889243-[NSObject(NSObject) 不识别选择器:] + 275
    3 核心基础 0x017dc50b ___forwarding_ + 1019
    4 核心基础 0x017dc0ee _CF_forwarding_prep_0 + 14
    5 UIKit 0x008b0c34-[UICollectionViewData _updateItemCounts] + 331
    6 UIKit 0x008b0ce1-[UICollectionViewData _validateItemCounts] + 45
    7 UIKit 0x008b2c64-[UICollectionViewData numberOfSections] + 35
    8 UIKit 0x0087d6ed-[UICollectionView numberOfSections] + 62
    9 UIKit 0x0089d614-[UICollectionViewFlowLayout(内部)_getSizingInfos] + 205
    10 UIKit 0x0089e48f -[UICollectionViewFlowLayout(内部)_fetchItemsInfo] + 521
    11 UIKit 0x00899fe2 -[UICollectionViewFlowLayout 准备布局] + 157
    12 UIKit 0x008b0d9d-[UICollectionViewData _prepareToLoadData] + 76
    13 UIKit 0x008b15c5-[UICollectionViewData validateLayoutInRect:] + 56
    14 UIKit 0x00877603 -[UICollectionView 布局子视图] + 173
    15 UIKit 0x0029a964-[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355
    16 libobjc.A.dylib 0x0157d82b -[NSObject performSelector:withObject:] + 70
    17 QuartzCore 0x03c5745a -[CALayer layoutSublayers] + 148
    18 石英核心 0x03c4b244 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
    19 QuartzCore 0x03c573a5 -[CALayer layoutIfNeeded] + 160
    20 UIKit 0x0035cae3-[UIViewController 窗口:setupWithInterfaceOrientation:] + 304
    21 UIKit 0x00272aa7-[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5212
    22 UIKit 0x00271646-[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82
    23 UIKit 0x00271518-[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 117
    24 UIKit 0x002715a0-[UIWindow _setRotatableViewOrientation:duration:force:] + 67
    25 UIKit 0x0027063a 57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 120
    26 UIKit 0x0027059c-[UIWindow _updateToInterfaceOrientation:duration:force:] + 400
    27 UIKit 0x002712f3-[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 870
    28 UIKit 0x002748e6 -[UIWindow setDelegate:] + 449
    29 UIKit 0x0034eb77-[UIViewController_tryBecomeRootViewControllerInWindow:] + 180
    30 UIKit 0x0026a474-[UIWindow addRootViewControllerViewIfPossible] + 591
    31 UIKit 0x0026a5ef -[UIWindow _setHidden:forced:] + 312
    32 UIKit 0x0026a86b -[UIWindow _orderFrontWithoutMakingKey] + 49
    33 UIKit 0x002753c8 -[UIWindow makeKeyAndVisible] + 65
    34 UIKit 0x00225bc0-[UIApplication_callInitializationDelegatesForURL:payload:suspended:] + 2097
    35 UIKit 0x0022a667-[UIApplication_runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
    36 UIKit 0x0023ef92-[UIApplication 句柄事件:withNewEvent:] + 3517
    37 UIKit 0x0023f555 -[UIApplication 发送事件:] + 85
    38 UIKit 0x0022c250 _UIApplicationHandleEvent + 683
    39 图形服务 0x037e1f02 _PurpleEventCallback + 776
    40 图形服务 0x037e1a0d PurpleEventCallback + 46
    41 核心基础 0x01767ca5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 53
    42 核心基础 0x017679db __CFRunLoopDoSource1 + 523
    43 核心基础 0x0179268c __CFRunLoopRun + 2156
    44 核心基础 0x017919d3 CFRunLoopRunSpecific + 467
    45 核心基础 0x017917eb CFRunLoopRunInMode + 123
    46 UIKit 0x00229d9c-[UIApplication_run] + 840
    47 UIKit 0x0022bf9b UIApplicationMain + 1225
    48 ControlViewTest 0x0000264d 主要 + 141
    49 libdyld.dylib 0x01e33701 开始 + 1
)
libc++abi.dylib:以 NSException 类型的未捕获异常终止
(lldb)

有人可以帮我吗

【问题讨论】:

    标签: ios objective-c nsexception


    【解决方案1】:

    您的UICollectionView 有一个未实现必需 方法collectionView:numberOfItemsInSection: 的数据源集。您需要为您的UICollectionView 分配一个有效的数据源:您编写并实现collectionView:numberOfItemsInSection: 的类。

    【讨论】:

    • 你说我怎么办?因为我没有一些类白色的方法
    • 这就是问题所在……所以你有一个UICollectionView。它目前有一个dataSource 集,指向一个通用的UIViewController(看起来你已经在XIB 或Storyboard 中设置了它)。但是这个通用视图控制器不能充当数据源,因为它没有实现任何UICollectionViewDataSource 方法。所以要么删除数据源(然后集合视图没用),要么让你的一个类实现UICollectionViewDataSource协议所需的方法,并将其分配给UICollectionViewdataSource属性。
    • 嗨@DarkDust。您能否编辑您的答案以提供更易于使用的说明?这个问题已经获得了相当多的关注,尽管它只有四个月大。
    • @cullub:除了“你需要实现UICollectionViewDataSource协议的所需方法。”之外,我看不出还有什么“易于使用”的说明。”细节是如此具体或如此笼统,以至于我需要编写一个完整的如何使用 UICollectionView 教程……其中已经足够多。
    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2014-12-14
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2018-12-11
    相关资源
    最近更新 更多