質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

2646閲覧

TableViewについて

tamago0224

総合スコア71

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2015/07/11 15:51

編集2015/07/12 06:54

以下のサイトを参考にしたのコードを書いたのですが、実行してみるとAppDelegate.swiftにエラー文[Theard 1:signal SIGABRT]とでました。

改善策をお願いします。
それと、main.storyboardの画面をついでに載せておきます。

![イメージ説明]WIDTH:600
![イメージ説明]WIDTH:600

lang

1import UIKit 2 3class ViewController: UIViewController , UITableViewDataSource, UITableViewDelegate{ 4 5 @IBOutlet var tableView : UITableView? 6 7 let imgArray: NSArray = ["img01.jpg","img02.jpg","img03.jpg","img04.jpg", 8 "img05.jpg","img06.jpg","img07.jpg","img08.jpg"] 9 10 let label2Array: NSArray = ["2013/8/23/16:04","2013/8/23/16:15","2013/8/23/16:47","2013/8/23/17:10", 11 "2013/8/23/1715:","2013/8/23/17:21","2013/8/23/17:33","2013/8/23/17:41"] 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 } 16 17 //Table Viewのセルの数を指定 18 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 19 return imgArray.count 20 } 21 22 //各セルの要素を設定する 23 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 24 25 // tableCell の ID で UITableViewCell のインスタンスを生成 26 var cell = tableView.dequeueReusableCellWithIdentifier("TableCell", forIndexPath: indexPath) as! UITableViewCell 27 28 var img = UIImage(named:"\(imgArray[indexPath.row])") 29 // Tag番号 1 で UIImageView インスタンスの生成 30 var imageView = tableView.viewWithTag(1) as! UIImageView 31 imageView.image = img 32 33 // Tag番号 2 で UILabel インスタンスの生成 34 let label1 = tableView.viewWithTag(2) as! UILabel 35 label1.text = "No.\(indexPath.row + 1)" 36 37 // Tag番号 3 で UILabel インスタンスの生成 38 var label2 = tableView.viewWithTag(3) as! UILabel? 39 label2?.text = "\(label2Array[indexPath.row])" 40 41 42 return cell 43 } 44 45 override func didReceiveMemoryWarning() { 46 super.didReceiveMemoryWarning() 47 } 48 49}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

let label1 = tableView.viewWithTag(2) as! UILabel
のところ
ラベルはセルの中なので
let label1= cell.viewWithTag(2) as! UILabel では?

投稿2015/10/23 09:25

osteo

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Connections Inspectorをチェックしてみるといいかもしれません。
一度接続した設定をソース上で消したりすると、ここに不要な設定が残る場合があり、その場合実行時にAppDelegateのところでSIGABRTになります。

![Storyboardとの接続]WIDTH:600

[追記]
もう一つ考えられるのがStoryboard上でのCellのIdentifierの設定とソースコード上のIdentifierの指定が一致していない場合です。
こちらも同じくSIGABRTになりますのでご確認ください
![CellのIdentifier]WIDTH:600

投稿2015/07/12 04:08

編集2015/07/12 11:07
jollyjoester

総合スコア1585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamago0224

2015/07/12 07:00 編集

一つきになる点があります。なので、Connections Inspectorがのっている写真をもう一度アップしました。 参考にしたサイトの説明では接続の際、tableをViewControllerと結びつけるとあるのですが、上のコードの中にそのような変数は見当たりません。自分はとりあえずtableViewをViewControllerと結びつけてみたのですが、これがエラーの原因なのでしょうか。
jollyjoester

2015/07/12 11:00

@IBOutletから始まる一行がStoryboardとソースコードを接続している部分です。 その行の左側にある丸い印がうまっていることから接続自体はちゃんとできているようですね(その部分でうまく接続できてなくて同エラーになる場合が多いです)。 もう一つ考えられるのはCellのIdentifierとソースコードの整合が取れてない場合なので回答に追記しますね。
guest

0

UITableViewCellをregisterしてないせいではないでしょうか?
viewDidLoadに

lang

1override func viewDidLoad() { 2 super.viewDidLoad() 3 self.tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "TableCell") 4} 5

こんな感じでしょうか。

投稿2015/07/11 16:11

編集2015/07/11 16:12
masashimizuno

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamago0224

2015/07/12 01:22

回答ありがとうございます。 回答者様の改善案を実際に試してみたのですが、同じ結果となってしまいました。 今更ですが、Xcodeのバージョンを載せてみます。 Xcode ver 6.3.2
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問