48903


Xcode 10.0でTableViewのカスタムセルのボタンをクラスTableViewCellにリンクしたいのですが、「Could not insert
new action」のエラーが出てしまいます。対応方法を教えていただけるでしょうか。

[![画像の説明をここに入力](https://i.stack.imgur.com/Opnbf.png)](https://i.stack.imgur.com/Opnbf.png)


CC BY-SA 4.0
2018-10-02T06:35:19.453
48895
2018-10-04T01:03:16.103
21142
question
swift ios swift4 uitableview
TableViewのカスタムセルのボタンがクラスにリンクできません


まず第一に確認すべきは、セルのCustom Classの設定が正しいかどうかでしょう。

[![セルのCustom
Class](https://i.stack.imgur.com/U1aw5.png)](https://i.stack.imgur.com/U1aw5.png)

この辺り、一度正しく設定して他の接続ができていた状態であっても、ソースコードやstoryboardのその後の編集などにより、設定が壊れてしまう場合があります。一度空欄にして(薄く`UITableViewCell`と表示されるはず)、また入力し直すなどして見てください。

* * *

ただ上記の設定を正しく行なっていても、やはりご記載の症状が出ることはあるようです。再現条件等が不明なので、以下は「私の場合はこれで接続できた」と言う参考事例としてご覧ください。

まずは、Assistant
editor上で該当のソースコードが編集可能な状態で開かれている状態にします。(私の場合は、そもそもここで一番苦労したんですが、画面キャプチャーを見るにそれは出来ているようなので省略。)

IBAction用の空メソッドをソースコードエディタ上で入力します。

[code]

    @IBAction func pushCheckBoxButton(_ sender: UIButton) {
        //
    }
    
[/code]

ソースコードエディタの左端部に○印が現れますので、そこからドラッグしてレイアウトエディタまたはツリー表示内の該当ボタンに接続します。接続先の上までポインタを移動した時にいかにも接続可能な表示にならなければ、接続できないと判定されていることになります。

[![レイアウトエディタへの接続](https://i.stack.imgur.com/psswd.png)](https://i.stack.imgur.com/psswd.png)

または

[![ツリー表示への接続](https://i.stack.imgur.com/obmxW.png)](https://i.stack.imgur.com/obmxW.png)

類似の事例を探すと、

  * Clean Build Folder をやってみた
  * Xcodeを再起動した
  * Macを再起動した

辺りの「Xcodeの挙動が変なとき試して見ること」をやってみたら元に戻った、なんて話もある(ちょっと前のバージョンから報告されてます)ので、本当に上記の操作のせいで接続できるようになったのかは別ですが、他のことをやってもまだ普通に接続できるようにならない場合には、お試しください。


CC BY-SA 4.0
2018-10-02T11:16:25.813
48903
2018-10-02T14:24:25.257
2018-10-02T14:24:25.257
13972
13972
48895
answer


classとViewの親classが内部的に紐付いていない状態です。  
ミスをしていなければ、Xcodeの小さい不具合であることが多いです。

経験的にですが

  * 一度ビルドする 
  * InterfadeBuilder内で、TableViewCellのClassを一回外し、もう一回指定する
  * Xcodeを再起動する

で8割直りますが、それでも直らない場合は別のClassを指定してみます。もしそれで紐づけができたならXcodeの不具合で、それでも紐づけできないならなにか間違えています。


CC BY-SA 4.0
2018-10-04T01:03:16.103
48941
2018-10-04T01:03:16.103
30312
48895
answer