- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
自从 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>
我已经检查了大量关于同一个错误的问题,但似乎找不到任何特定于 swift 的内容或任何可以解决我当前问题的内容。
谢谢!
最佳答案
如转储的第一行所示,您正在尝试将 ...numberOfRows...
发送到类 UIViewController
的对象,但该方法是仅在您的子类中实现。
在您的 nib 文件中,您需要将 View Controller 的类从 UIViewController
(默认)更改为 ViewController
。
打开你的 Storyboard(或 nib 文件)选择 Controller 本身(它在底部(或 Xcode 6 中的顶部)有一个图标,当你将鼠标悬停在它上面时会显示“查看 Controller ”。
然后从属性面板中选择第三个图标,然后在顶部显示“自定义类”的地方输入“ViewController”
关于ios - XCode6/swift : unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24169390/
我想知道这两者之间有什么不同 .myClass/DomElement .myotherclassinsidethatelement 和 .myClass/DomElement > .myothercl
使用 jQuery on() 版本 1.7。我通常这样绑定(bind)我的事件: $(".foo").on("click", function() { console.log("foo cli
我想找到与选择器匹配的所有元素,但如果它已经包含在匹配元素中则不查找。 $('#container').find('.child').not('.child .child'); 请注意,.child
我有一个看起来像这样的无序列表,但更广泛: Parent Category 2 Parent Category 2 Parent Category 3
这个问题在这里已经有了答案: CSS negation pseudo-class :not() for parent/ancestor elements (2 个答案) 关闭 4 年前。
我希望使用 CSS :not() 来定位 before 选择器。这可能吗? 示例: https://jsfiddle.net/uuq62b8d/ a.button:before { content
这有什么区别: $.each($('#myTable input[name="deleteItem[]"]:checked').do_something()); 还有这个: $('#myTable i
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我正在使用 UL LI 列表和 jQuery 创建一棵树。我使用了 jQuery 选择器 jQuery(li:has(ul)) 查找所有具有子节点的列表节点,然后向其添加单击事件。 jQuery(li
我真的不知道如何命名这两种方法,所以请原谅我这样调用它们。 字符串选择器 $("#myList li").eq(3); 函数选择器 $("#myList li:eq(3)"); 据我所知,他们都做同样
我有以下代码: .. 我正在使用以下 CSS 来排除具有“main-l tbl”类的表: table:not(.main-l .views-table) { .. } 我注
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: What is the difference between $ and jQuery 我注意到使用“jQuery(
我有许多 css 选择器和许多选择器异常,所以我使用 :not 将它们排除在外... 示例(只是一些我不需要的选择器): [class*="-dashboard-"]:not([class$="-bi
CADisplayLink 有这个方法是有道理的,但我很好奇为什么 UIScreen 也会有它。 最佳答案 文档说屏幕提供的显示链接与该屏幕相关联。但是,查看官方文档,与任何屏幕都没有明显的关系;显示
我在这里阅读了关于 toArray() 的文档,并在控制台中对其进行了测试。我找不到在选择器上调用 toArray() 和调用选择器本身之间的区别。 两种方式都得到了完全相同的结果,这是一个与选择器匹
我有一个问题,为什么这两个代码片段不同。 $('#ctl00_DDMenu1_HyperLink1') //jQuery(a#ctl00_DDMenu1_HyperLink1 Default.asp
我想通过以下方式模拟我可以在 jQuery 中实现的目标$('.someClass:not(.hidden)') 我试过下面的代码。 $crawler->filter('someClass:not(.
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我想通过以下方式模拟我可以在 jQuery 中实现的目标$('.someClass:not(.hidden)') 我试过下面的代码。 $crawler->filter('someClass:not(.
我想根据 Iterator::next 中当前枚举变体的某些属性更改枚举变体。我有两次尝试,都没有编译: enum Test { A(Vec), B, } impl Iterator
我是一名优秀的程序员,十分优秀!