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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

Q&A

解決済

1回答

681閲覧

Fail to render and update auto layout status for UITableViewController

Marcos

総合スコア18

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

0グッド

0クリップ

投稿2019/07/13 12:31

掲題のエラーが発生しており、storyboardでも青い枠線のみ表示されている状況でございます。
RestaurantTableViewControllerとRestaurant.swiftのコードは下記の通りとなります。
尚、folder cleanなどは実施済みです。
初心者にて恐縮ですが、ご回答のほど宜しくお願いいたします。

【RestaurantTableViewController】
import UIKit

class RestaurantTableViewController: UITableViewController {

//MARK: Properties var restaurants = [Restaurant]() override func viewDidLoad() { super.viewDidLoad() loadSampleRestaurants() } // MARK: - Table view data source override func numberOfSections(in tableView: UITableView) -> Int { // #warning Incomplete implementation, return the number of sections return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { // #warning Incomplete implementation, return the number of rows return restaurants.count } //MARK: Private functions private func loadSampleRestaurants(){ let defaultPhoto = UIImage(named: "defaultRestaurant") guard let defaultSpot = Restaurant(name: "Kyube", photo: defaultPhoto, rating: 4, location: "Ginza", usage: "Cheer", comment: "Best sushi restaurant in Tokyo") else{ fatalError("Unable to instantiate restaurant") } restaurants += [defaultSpot] }

}

【Restaurant.swift】
import UIKit

class Restaurant {
//MARK: Properties

var name: String var photo: UIImage? var rating: Int var location: String var usage: String var comment: String init?(name: String, photo: UIImage?, rating: Int, location: String, usage: String, comment: String) { if name.isEmpty || rating < 0 { return nil } self.name = name self.photo = photo self.rating = rating self.location = location self.usage = usage self.comment = comment

}

}

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

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

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

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

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

hayabusabusash

2019/07/14 13:02

コピペして試してみましたが、特にエラーは発生しませんでした。 storyboardにあるViewControllerはUITableViewControllerになっていますか? UIViewControllerのCustom ClassにRestaurantTableViewControllerを指定したりはしていませんか?
Marcos

2019/07/15 14:13

ご返信頂きありがとうございます。 UITableViewControllerに変更しましたがダメな様です。 crashしてる理由が書いてある?ファイルを見ると下記とあるので画像ファイルを上手く読み込めてないという事でしょうか Application Specific Information: *** Terminating app due to uncaught exception 'IBAssertionFailure', reason: 'ASSERTION FAILURE: result Reason: UIImage was marshalled with path: /var/folders/hz/XX/T/InterfaceBuilder/XX/marshalledImages/0.png but did not unmarshall for { imageName = ""; imagePath = "/var/folders/XX/T/InterfaceBuilder/XX/marshalledImages/0.png"; templateRenderingIntent = 0;
hayabusabusash

2019/07/15 14:20

貼って頂いたコード上に画像を扱っている箇所がありますが、 画像がなくてもnilになるだけで特に問題ないと思います。 もしStoryboard上でカスタムのセルなどを作っているならそちらも貼っていただけると原因がわかるかもしれません。
Marcos

2019/07/15 14:22

早速ありがとうございます。 カスタムのセルですとRestaurantTableViewCellがあります import UIKit class RestaurantTableViewCell: UITableViewCell { //MARK: Properties @IBOutlet weak var restaurantNameLabel: UILabel! @IBOutlet weak var ratingControl: RatingControl! @IBOutlet weak var restaurantImageView: UIImageView! override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } }
Marcos

2019/07/15 14:23

その他にはRestaurant クラスを作るのもございます import UIKit class Restaurant { //MARK: Properties var name: String var photo: UIImage? var rating: Int var location: String var usage: String var comment: String init?(name: String, photo: UIImage?, rating: Int, location: String, usage: String, comment: String) { if name.isEmpty || rating < 0 { return nil } self.name = name self.photo = photo self.rating = rating self.location = location self.usage = usage self.comment = comment } }
hayabusabusash

2019/07/15 15:36

追加の情報ありがとうございます! RestaurantTableViewCellはTableView上で作っていますか? それとも別のxibファイルとして作っていますか?
Marcos

2019/07/16 01:01

全てstoryboard上で作ってましてxibは現状ありません。お手数をお掛けします、宜しくお願い致します
hayabusabusash

2019/07/16 01:47

セルに問題がありそうですね。 個人的にはRatingControlが怪しいと思います... RatingControlだけセルから削除してみたらどうなりますか? それでもダメなら一度セルを作り直して、どの時点でエラーが出るのか確認しながら作った方がいいと思います。
Marcos

2019/07/16 14:14

RatingControlを削除して、Derived Dataを削除したら解決できました! RatingControlを一から見てみてどこが違うのか探してみたいと思います。 今回もご教示頂きましてありがとうございました!
hayabusabusash

2019/07/16 14:25

よかったです! これで解決できたなら、自己解決で質問を解決済みにしておいてください!
Marcos

2019/07/16 14:28

自己解決にて投稿しました!本当にありがとうございました!
guest

回答1

0

自己解決

Rating Controlクラスに問題があり、それをstoryboardで指定を外し、Derived Dataを削除した上でXcodeを再起動する事で解決できました。hayabusabusashさん、親身にアドバイス頂きありがとうございました!

投稿2019/07/16 14:27

Marcos

総合スコア18

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問