LoginSignup
8
4

More than 3 years have passed since last update.

Xcode11のコピペにつまずいた

Last updated at Posted at 2019-12-15

はじめに

まずは下記をご覧いただきたい。

copy

おわかりいただけただろうか?

Storyboard の ViewController を cmd + C, cmd + V でコピペしようとしたところ Xcode がクラッシュしたのである:scream:

現象

Xcode11 の Storyboard の ViewController をコピペしようとするとクラッシュする(Xcode11.0 11.2.1 で確認たまに View のコピペでも起きる...)

この現象はいつ起こるのか、なにが原因なのかは不明である。コピペできるときはできるし、できないときは何度やってもできない...

同一 Storyboard でのコピペ、別の Storyboard へのコピペ、別プロジェクトへのコピペいずれの場合も起こる:persevere:

対応

stack overflow に同じ悩みを持つ人がいた:innocent:

ここにいくつか対応策が書いてある。場合によってできるようになるみたいです。

cmd + D でコピペする

cmd + C, cmd + V ではなく cmd + D でコピペする。(はじめて知った...これでファイル複製できるらしい:see_no_evil:
私の場合はこれでできるようになりました。なぜか一度成功すると cmd + C, cmd + V でもコピペできるようになりました。

シミュレータを停止する

シミュレータを起動している場合シミュレータを停止させます。(これでなおった人もいるみたい)

DerivedData のファイルを削除する

ライブラリ⁩/Developer⁩/Xcode⁩/DerivedData 内のファイルを削除する。(念の為ゴミ箱からも削除)

XML として開きコピペする

こちらは別の Storyboard にコピペするときに有効な手段です。

  1. コピーしたい ViewController の Storyboard を Open As -> Souce Code で開く。
    open
  2. 対象の ViewController の <scene> から </scene> をコピーする。
    scene
  3. コピー先の Storyboard を Open As -> Souce Code で開く。
  4. <scenes> タグの中の適切な場所にコピーする。

これで別の Storyboard に ViewController がコピペできます。同一 Storyboard 内の場合は ObjectID が重複してしまうので使えません:crying_cat_face:(下記のようなアラートが出ます)

alert

さいごに

Xcode のバグみたいですが上記のいずれかの方法でコピペできれば幸いです:innocent:

8
4
0

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
8
4