我遵循this教程时遇到问题。没用谁能帮我解决此错误?本教程使用Swift 4,iOS 11和Xcode 9,但我使用iOS 12和Xcode 10.1。那引起了问题吗?因为我只是正确地遵循了教程。
这是错误消息:
2019-03-09 22:27:39.775603+0700 Ratings[667:8658] libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType is not supported on this platform.
2019-03-09 22:27:40.020185+0700 Ratings[667:8658] *** Assertion failure in -[UITableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3698.93.8/UITableView.m:8054
2019-03-09 22:27:40.062689+0700 Ratings[667:8658] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier PlayerCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
*** First throw call stack:
(
0 CoreFoundation 0x000000010ed561bb __exceptionPreprocess + 331
1 libobjc.A.dylib 0x000000010d399735 objc_exception_throw + 48
2 CoreFoundation 0x000000010ed55f42 +[NSException raise:format:arguments:] + 98
3 Foundation 0x000000010cd9c877 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
4 UIKitCore 0x00000001119ec5b1 -[UITableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:] + 868
5 UIKitCore 0x00000001119ec219 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 91
6 Ratings 0x000000010ca6f950 $S7Ratings21PlayersViewControllerC05tableC0_12cellForRowAtSo07UITableC4CellCSo0jC0C_10Foundation9IndexPathVtF + 240
7 Ratings 0x000000010ca6fd9c $S7Ratings21PlayersViewControllerC05tableC0_12cellForRowAtSo07UITableC4CellCSo0jC0C_10Foundation9IndexPathVtFTo + 108
8 UIKitCore 0x0000000111a0766e -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 771
9 UIKitCore 0x0000000111a07bfb -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 73
10 UIKitCore 0x00000001119cec36 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2863
11 UIKitCore 0x00000001119ef8ee -[UITableView layoutSubviews] + 165
12 UIKitCore 0x0000000111cad795 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1441
13 QuartzCore 0x0000000113235b19 -[CALayer layoutSublayers] + 175
14 QuartzCore 0x000000011323a9d3 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 395
15 QuartzCore 0x00000001131b37ca _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 342
16 QuartzCore 0x00000001131ea97e _ZN2CA11Transaction6commitEv + 576
17 UIKitCore 0x00000001117de2d0 __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 139
18 CoreFoundation 0x000000010ecbb62c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
19 CoreFoundation 0x000000010ecbade0 __CFRunLoopDoBlocks + 336
20 CoreFoundation 0x000000010ecb5654 __CFRunLoopRun + 1284
21 CoreFoundation 0x000000010ecb4e11 CFRunLoopRunSpecific + 625
22 GraphicsServices 0x0000000116f541dd GSEventRunModal + 62
23 UIKitCore 0x00000001117c381d UIApplicationMain + 140
24 Ratings 0x000000010ca6e547 main + 71
25 libdyld.dylib 0x00000001102d0575 start + 1
26 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
您可以在我的github仓库here上找到我的源代码。
答案 0 :(得分:0)
您在情节提要中将单元格标识符定义为PlayersCell
。
将其更改为PlayerCell
答案 1 :(得分:0)
请仔细阅读错误消息。最重要的部分是
无法使标识符为PlayerCell的单元出队
以及指示错误发生位置的NSAssertionHandler handleFailureInMethod
行的之前的行:
0x00000001119ec5b1-[UITableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:] + 868
这意味着在您遇到的简单错字情况下,Interface Builder中的表视图单元格的重用标识符未设置或与cellForRow
中指定的标识符不匹配。