1
コードベースをSwift 2
からSwift 3
にアップグレードした後、最近私のアプリケーションをXcode 7
からXcode 8
に移行しました。アプリはうまくコンパイルされますが、実行時に例外を受けています。iOSアプリランタイム中にNSInternalInconsistencyExceptionを取得する
ここで何をする必要があるのか分かりません。
例外:
2016-09-14 14:00:16.098 ApplePaySwag[5762:122585] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'UITableView (<UITableView: 0x7fb361823600; frame = (0 0; 375 667); clipsToBounds = YES; opaque = NO; autoresize = W+H;
gestureRecognizers = <NSArray: 0x608000049f60>;
layer = <CALayer: 0x608000035100>; contentOffset: {0, -64}; contentSize: {375, 665}>) failed to obtain a cell from its dataSource (<ApplePaySwag.SwagListViewController: 0x7fb3614068e0>)'
*** First throw call stack:
(
0 CoreFoundation 0x00000001050dd34b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x0000000104a5f21e objc_exception_throw + 48
2 CoreFoundation 0x00000001050e1442 +[NSException raise:format:arguments:] + 98
//code removed for brevity
libc++abi.dylib: terminating with uncaught exception of type NSException
SwagListViewController.swift
import UIKit
class SwagListViewController: UITableViewController {
var swagList = [
Swag( image: UIImage(named: "iGT"),
title: "iOS Games by Tutorials",
price: 54.00,
type: SwagType.Electronic,
description: "This book is for beginner to advanced iOS developers. Whether you are a complete beginner to making iOS games, or an advanced iOS developer looking to learn about Sprite Kit, you will learn a lot from this book!"),
// code removed for brevity
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath as IndexPath) as! SwagCell
let object = swagList[indexPath.row]
cell.titleLabel.text = object.title
cell.priceLabel.text = "$" + object.priceString
cell.swagImage.image = object.image
return cell
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
let object = swagList[self.tableView.indexPathForSelectedRow!.row]
(segue.destination as! BuySwagViewController).swag = object
}
}
}
SwagCell.swift
import UIKit
class SwagCell: UITableViewCell {
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var priceLabel: UILabel!
@IBOutlet weak var swagImage: UIImageView!
}
あなたのコードは 'のtableViewに何:cellForRowAtIndexPath:?'あなたをしましたストーリーボードでは?コードであなたのセルを登録する? – Larme
あなたは解決策を発見した方が良い洞察 – user2325154
を得ることができるようにちょうどいくつかのより多くのコードで私の質問を更新しました? –