Xcode hanya dapat merefaktor kode C dan Objective-C. Bagaimana cara mengganti nama kelas swift di Xcode 6?


103

Saya telah membuat Proyek Aplikasi Tampilan Tunggal baru dalam versi beta Xcode 6. Saya ingin mengganti nama kelas swift dari ViewController.swiftnama lain. Tetapi ketika saya memilih Refactor -> Rename, itu memberikan kesalahan Xcode can only refactor C and Objective-C code.

masukkan deskripsi gambar di sini

Tahu bagaimana cara mengganti nama kelas swift di Xcode 6?

MEMPERBARUI:

Akhirnya Xcode 9 mendukung Refactoring for Swift. Apple membutuhkan waktu 3 tahun untuk menambahkan fitur dasar ini. Refactoring


9
Saat ini tidak ada. Laporkan bug .
jtbandes

19
Lebih dari setahun setelah pertanyaan ini diajukan, satu-satunya jawaban adalah mencari dan mengganti manual! Terbelakang luar biasa dari Apple, ini adalah fitur dasar dan penting untuk IDE
HughHughTeotl

1
AppCode dapat menyelesaikan pemfaktoran ulang ini. Ini akan menjadi proses dua langkah untuk kelas Anda yang ditentukan dalam sebuah .swiftfile. 1. Pilih nama kelas dan lakukan Refactor> Rename . 2. Pilih .swiftfile dan lakukan Refactor> Rename .
Daniel Zhang

5
Bahkan setelah dua tahun !!! TIDAK DITERAPKAN ???
Milad Faridnia

Ini sebenarnya bagus dengan cara mengembalikan kenangan masa lalu sambil menyalin dan menempelkan 100 item di C
LegendLength

Jawaban:


25

Anda dapat mengubah nama kelas di File Inspector di sisi kanan Xcode6.

  • buka kelasmu
  • pergi ke File Inspector> Identify and type section
  • ganti nama kelas yang ada di bidang "nama".

Itu saja! Sebelumnya saya mengganti nama kelas secara manual di file kelas.


11
Terima kasih atas balasannya, tetapi itu hanya mengubah nama kelas hanya dalam struktur file. Saya masih harus mengubah semua contoh nama kelas saya di mana pun dalam kode. Sedangkan menggunakan Refactor-> Rename ... digunakan untuk mengubah nama dalam struktur file maupun dalam kode.
Khawar

Tidak masalah! Saya hanya berpikir ini semacam solusi sampai Apple melakukan sesuatu dengan masalah ini. Anda juga dapat menggunakan fungsi Temukan dan Ganti hingga hari itu. Bagaimanapun, dibangun di Refactor-> Rename hampir melakukan tindakan yang sama.
Newone

1
@Newone Itu tidak melakukan hal yang sama. Misalnya, Find and Replace akan mencari di dalam string, dan Refactor-> Rename tidak boleh melakukan itu.
Martin Epsz

15

Saya telah menggunakan Temukan> Temukan & Ganti di Proyek , ini tidak sempurna tetapi berhasil.


12

Saya menggunakan cara ini:

  • Anda dapat memposisikan kursor pada variabel yang ingin Anda ganti namanya
  • Pilih Editor - Edit semua dalam Cakupan (^ ⌘E)
  • Ubah nama variabel dan secara otomatis semua kejadian variabel diedit

Ini membantu. Saya kagum bahwa saya merindukan ini begitu lama !! :]
hdsenevi

1
Ini hanya bekerja dalam ruang lingkup, yaitu tidak di seluruh file IIRC.
Steve Moser

10

Dari tutorial ini.

Pisahkan Kode Swift iOS8 Anda

Hal pertama yang pertama, mari ganti nama View Controller kita menjadi sesuatu yang lebih bermakna. Buka file ViewController.swift Anda dan ganti semua referensi ke 'ViewController' dengan nama baru kami, 'SearchResultsViewController'. Ubah nama file juga menjadi SearchResultsViewController.swift.

Jika Anda mencoba menjalankan aplikasi dari sini, Anda akan mengalami crash. Ini karena file storyboard kita belum diperbarui untuk mengetahui tentang kelas baru! Jadi buka Main.storyboard, pilih objek 'View Controller' Anda di scene (navigasi sebelah kiri), lalu pilih Identity Inspector (di sebelah kanan, tombol ketiga.)

Dari sini mari kita ubah kelas dari 'ViewController' menjadi 'SearchResultsViewController'. Sekarang kita harus kembali ke jalurnya. Periksa apakah proyek masih berfungsi, dan mari kita lanjutkan.


terima kasih atas balasannya. Saya sudah mencoba metode ini. Tapi sepertinya itu bukan cara yang baik. Jika saya menggunakan objek ViewController.swift di 10 kelas, saya harus mengganti namanya secara manual di semua kelas. Sangat menyakitkan dan membuang waktu :(
Khawar

@ Khawar- Ya Anda benar ,, tapi mungkin tidak ada pilihan lain sekarang dan juga swift dalam versi beta. jangan khawatir tentang itu .. semoga apel akan menemukan cara lain yang lebih mudah kemudian (tujuan c ???) :)
iPatel

1
Saya menggunakan Versi 7.2 (7C68) dan pengubahan nama pemfaktoran ulang masih tidak memungkinkan
Barbara R

Di 7.3 itu juga tidak mungkin.
ManiaChamp


2

Xcode 9

Xcode 9 sekarang mendukung penggantian nama di Swift. Ini diumumkan di WWDC 2017.

masukkan deskripsi gambar di sini


Terima kasih, terima kasih Apple, tetapi mengganti nama tetap tidak berhasil. Sekarang Xcode rusak.
kisileno

Benar ... Mulai Versi 9.0 beta, mengganti nama membuat Xcode crash. Tapi inilah yang seharusnya berhasil di masa depan , kapan pun itu :)
Guy Daher
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.