ios – XCode6 / Swift:无法识别的选择器发送到实例

栏目: Swift · 发布时间: 5年前

内容简介:如转储的第一行所示,您正在尝试将… numberOfRows …发送到类UIViewController的对象,但该方法仅在您的子类中实现.在您的nib文件中,您需要将视图控制器的类从UIViewController(默认)更改为ViewController.打开你的故事板(或nib文件)选择控制器本身(它在底部(或Xcode 6中的顶部)有一个图标,当你将鼠标悬停在它上面时会显示“View Controller”.
我以为自从 Swift

/ ios8发布以来我在iOS开发中尝试过,我在构建基本的tableView时遇到了麻烦.

当前在模拟器中加载应用程序时收到以下错误消息(Xcode表示构建完成):

2014-06-11 13:40:56.173 firstapp[2217:85843] -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xb20fcf0
2014-06-11 13:40:56.180 firstapp[2217:85843] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xb20fcf0'
*** First throw call stack:
(
    0   CoreFoundation                      0x00452916 __exceptionPreprocess + 182
    1   libobjc.A.dylib                     0x01da28d9 objc_exception_throw + 44
    2   CoreFoundation                      0x004596f5 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
    3   CoreFoundation                      0x003a4857 ___forwarding___ + 1047
    4   CoreFoundation                      0x003a441e _CF_forwarding_prep_0 + 14
    5   UIKit                               0x00f149aa -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 2767
    6   UIKit                               0x00f18ebc -[UITableViewRowData numberOfRows] + 98
    7   UIKit                               0x00d57bb0 -[UITableView noteNumberOfRowsChanged] + 133
    8   UIKit                               0x00d57442 -[UITableView reloadData] + 1055
    9   UIKit                               0x00d5b54d -[UITableView _reloadDataIfNeeded] + 78
    10  UIKit                               0x00d60ed5 -[UITableView layoutSubviews] + 36
    11  UIKit                               0x00cd9223 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 601
    12  libobjc.A.dylib                     0x01db5763 -[NSObject performSelector:withObject:] + 70
    13  QuartzCore                          0x04441b87 -[CALayer layoutSublayers] + 152
    14  QuartzCore                          0x044359e9 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 397
    15  QuartzCore                          0x04441ace -[CALayer layoutIfNeeded] + 160
    16  UIKit                               0x00db72e3 -[UIViewController window:setupWithInterfaceOrientation:] + 309
    17  UIKit                               0x00ca5a80 -[UIWindow _rotateToBounds:withAnimator:transitionContext:] + 667
    18  UIKit                               0x00ca8388 -[UIWindow _rotateWindowToOrientation:updateStatusBar:duration:skipCallbacks:] + 2151
    19  UIKit                               0x00caa074 -[UIWindow _setRotatableClient:toOrientation:applyTransformToWindow:updateStatusBar:duration:force:isRotating:] + 6723
    20  UIKit                               0x00ca785d -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 128
    21  UIKit                               0x00ca77d6 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 84
    22  UIKit                               0x00ca769e -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 115
    23  UIKit                               0x00ca7729 -[UIWindow _setRotatableViewOrientation:duration:force:] + 68
    24  UIKit                               0x00ca66b6 __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 120
    25  UIKit                               0x00ca6624 -[UIWindow _updateToInterfaceOrientation:duration:force:] + 406
    26  UIKit                               0x00ca7445 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 905
    27  UIKit                               0x00cacb1f -[UIWindow setDelegate:] + 479
    28  UIKit                               0x00da4177 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 184
    29  UIKit                               0x00c9f69a -[UIWindow addRootViewControllerViewIfPossible] + 683
    30  UIKit                               0x00c9f85c -[UIWindow _setHidden:forced:] + 313
    31  UIKit                               0x00c9fad9 -[UIWindow _orderFrontWithoutMakingKey] + 49
    32  UIKit                               0x00cae47b -[UIWindow makeKeyAndVisible] + 80
    33  UIKit                               0x00c4fa50 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 3228
    34  UIKit                               0x00c528a3 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1507
    35  UIKit                               0x00c6c335 __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke + 59
    36  UIKit                               0x00c515e3 -[UIApplication workspaceDidEndTransaction:] + 29
    37  FrontBoardServices                  0x033f42af -[FBSWorkspace clientEndTransaction:] + 87
    38  FrontBoardServices                  0x033fb71d __53-[FBSWorkspaceClient _queue_handleTransactionBookEnd]_block_invoke + 49
    39  CoreFoundation                      0x003772f0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16
    40  CoreFoundation                      0x0036ba83 __CFRunLoopDoBlocks + 195
    41  CoreFoundation                      0x0036b1e8 __CFRunLoopRun + 936
    42  CoreFoundation                      0x0036ab7b CFRunLoopRunSpecific + 443
    43  CoreFoundation                      0x0036a9ab CFRunLoopRunInMode + 123
    44  UIKit                               0x00c50efa -[UIApplication _run] + 571
    45  UIKit                               0x00c54dee UIApplicationMain + 3727
    46  firstapp                            0x00005011 top_level_code + 97
    47  firstapp                            0x0000504b main + 43
    48  libdyld.dylib                       0x022beac5 start + 1
    49  ???                                 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

我已经尝试跟踪堆栈跟踪到可能导致问题的方法,但找不到任何与众不同的东西(目前正在遵循教程).我还包括了我的ViewController.swift:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
        return 10
    }


    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
        let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MyTestCell")

        cell.text = "Row #\(indexPath.row)"
        cell.detailTextLabel.text = "Subtitle #\(indexPath.row)"

        return cell
    }

}

编辑:包括Main.storyboard的源代码:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6154.17" systemVersion="13D65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="CLE-J8-Gwc">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6153.11"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="53f-Xy-Vbi">
            <objects>
                <viewController id="CLE-J8-Gwc" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="uoO-21-5Iu">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="Kl0-es-OXb">
                                <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                <connections>
                                    <outlet property="dataSource" destination="CLE-J8-Gwc" id="HG5-Ye-UOQ"/>
                                    <outlet property="delegate" destination="CLE-J8-Gwc" id="I76-0E-fPy"/>
                                </connections>
                            </tableView>
                        </subviews>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="yaa-zI-5Eu" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="110.66666666666666" y="562.08333333333337"/>
        </scene>
    </scenes>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination" type="retina4"/>
    </simulatedMetricsContainer> </document>

我已经检查了大量有关同一错误的问题,似乎无法找到任何特定的快速或解决我当前问题的任何内容.

谢谢!

如转储的第一行所示,您正在尝试将… numberOfRows …发送到类UIViewController的对象,但该方法仅在您的子类中实现.

在您的nib文件中,您需要将视图控制器的类从UIViewController(默认)更改为ViewController.

打开你的故事板(或nib文件)选择控制器本身(它在底部(或Xcode 6中的顶部)有一个图标,当你将鼠标悬停在它上面时会显示“View Controller”.

然后从属性面板中选择第3个图标,在顶部的“Custom Class”中输入“ViewController”

翻译自:https://stackoverflow.com/questions/24169390/xcode6-swift-unrecognized-selector-sent-to-instance


以上所述就是小编给大家介绍的《ios – XCode6 / Swift:无法识别的选择器发送到实例》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro Git

Pro Git

Scott Chacon / Apress / 2009-8-27 / USD 34.99

Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops a......一起来看看 《Pro Git》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具