5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RxSwiftでTableViewに精神を殺された😇(解決していない)←した

Last updated at Posted at 2018-06-07

前置き

ど素人のガチでコード書いている時間は3ヶ月程度のレベルです。
プログラマー歴も同等です。(経験値少なすぎおじさん)

メモというかこの悩みと悲しみを未来永劫忘れないためのメモ(未解決事件)

RxSwiftを使ってTableViewに精神を殺された😇

何がやりたいかというと、
UIViewContorollerUITableViewCellを乗っけてるViewがある。
そのCellに情報を入れたいだけ。(普通の使い方だよぉ...)
(NavigationControllerもいるよ)

クソコードViewController.swift

import UIKit
import RxSwift
import RxDataSources
import RxCocoa

class mainView: UIViewController {

 // StoryBoardから設定したViewController配下のUITableView
 @IBOutlet weak var tableView: UITableView!

 // Modelは独自で定義してた項目群
 // 実際はViewModelに定義してソコから参照している
 var item = BehaviorRelay<Model>(value: nil)

 override func viewDidLoad() {
  super.viewDidLoad()

 // これは監視を仕込むための関数
  subscribe()
  }

 // やったるでー
 func sbuscribe() {

  item.asObservable()
   .bind(to: tableView.rx.items(cellIdentifier: identifier, cellType: tableViewCell.self)) { _, item, cell in 
  
  // Cellに対してごにょごにょする
  cell.label.text = "いえーい"

 }
 .disposed(by: disposeBag) // 簡略

 // 省略
}

オコラレタ

Xcodeはお怒りである。
Generic parameter 'Self' could not be inferred
箇所はtableView.rx.itemsrxの部分に赤線。
すぐ翻訳しちゃうマンは翻訳をした。
汎用パラメータ 'Self'を推測できませんでした

なるほど、わからん。

謎(なぞ)

色々調べて、StoryBoardも見直して、作り直して、色々試したけど...
意味がわからなかった。

経験不足から推測ができないのは辛い。
まるで目星が立たない。
というか、別の箇所ではほぼ、同じ構成で動いているのだ。
なぜ、

そもそも、Rxを使ったTableViewの扱い方が間違っている可能性の方が大いにある。
というか、普通のTableViewでさえ扱えきれていないのに😡

心折れそう。

追記

コメントご指摘をいただきました。

.bind(to: tableView.rx.items(cellIdentifier: identifier, cellType: tableViewCell.self)) { _, item, cell in 

を記載してた、tableViewCell.selfに誤りがありました。
rxで怒られていましたが、原因は全く関係のない箇所...

エラー箇所だけではなく、全体の構成をしっかりと意識して調査しなければなりませんね。
良い勉強となりました!

アドバイスありがとうございます

5
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?