Xcode chỉ có thể cấu trúc lại mã C và Objective-C. Làm thế nào để đổi tên tên lớp nhanh chóng trong Xcode 6?


103

Tôi đã tạo một Dự án ứng dụng Chế độ xem một lần mới trong phiên bản Xcode 6 beta. Tôi muốn đổi tên lớp swift ViewController.swiftthành một số tên khác. Nhưng khi tôi chọn Refactor -> Rename, nó báo lỗi Xcode can only refactor C and Objective-C code.

nhập mô tả hình ảnh ở đây

Bất kỳ ý tưởng làm thế nào để đổi tên lớp swift trong Xcode 6?

CẬP NHẬT:

Cuối cùng Xcode 9 đang hỗ trợ Refactoring cho Swift. Apple đã mất 3 năm để bổ sung tính năng cơ bản này. Tái cấu trúc


9
Hiện tại không có. Gửi một lỗi .
jtbandes

19
Hơn một năm sau khi điều này được hỏi, câu trả lời duy nhất vẫn là cách tìm và thay thế thủ công! Ngược khó tin của Apple, đây là một tính năng cơ bản và cần thiết cho một IDE
HughHughTeotl

1
AppCode có thể thực hiện tái cấu trúc này. Nó sẽ là một quá trình hai bước cho lớp của bạn được xác định trong một .swifttệp. 1. Chọn tên lớp và thực hiện Refactor> Rename . 2. Chọn .swifttệp và thực hiện Refactor> Rename .
Daniel Zhang

5
Ngay cả sau hai năm !!! KHÔNG ĐƯỢC THỰC HIỆN???
Milad Faridnia

Nó thực sự thoải mái tại một cách mang lại những ký ức trở lại của ngày xưa trong khi sao chép và dán 100 mục trong C
LegendLength

Câu trả lời:


25

Bạn có thể thay đổi tên của một lớp trong Trình kiểm tra tệp ở phía bên phải của Xcode6.

  • mở lớp học của bạn
  • đi tới Trình kiểm tra tệp> Xác định và nhập phần
  • đổi tên lớp hiện có trong trường "name".

Đó là tất cả! Trước đây tôi đổi tên lớp theo cách thủ công trong tệp lớp.


11
Cảm ơn bạn đã trả lời, nhưng nó chỉ thay đổi tên lớp trong cấu trúc tệp. Tôi vẫn phải thay đổi tất cả các trường hợp của tên lớp của mình ở mọi nơi trong mã. Trong khi sử dụng Refactor-> Rename ... dùng để đổi tên trong cấu trúc file cũng như code.
Khawar

Không vấn đề gì! Tôi chỉ nghĩ đó là một giải pháp cho đến khi Apple làm gì đó với vấn đề này. Bạn cũng có thể sử dụng chức năng Tìm và Thay thế cho đến ngày đó. Bất kỳ trường hợp nào, được xây dựng trong Refactor-> Rename hầu như thực hiện các hành động tương tự.
Newone

1
@Newone Nó không làm điều tương tự. Ví dụ: Tìm và Thay thế sẽ tìm kiếm bên trong các chuỗi và Refactor-> Rename sẽ không làm điều đó.
Martin Epsz

15

Tôi đã sử dụng Find> Find & Replace trong Project , nó không hoàn hảo nhưng nó hoạt động.


12

Tôi sử dụng cách này:

  • Bạn có thể định vị con trỏ trên biến mà bạn muốn đổi tên
  • Chọn Trình chỉnh sửa - Chỉnh sửa tất cả trong Phạm vi (^ ⌘E)
  • Đổi tên biến và tự động tất cả các lần xuất hiện của biến đều được chỉnh sửa

Điều này có ích. Tôi ngạc nhiên rằng tôi đã bỏ lỡ điều này quá lâu !! :]
hdsenevi

1
Điều này chỉ hoạt động trong phạm vi, tức là không trên các tệp IIRC.
Steve Moser

10

Từ hướng dẫn này.

Tách mã Swift Code iOS8 của bạn

Đầu tiên, hãy đổi tên View Controller của chúng ta thành một cái gì đó có ý nghĩa hơn. Mở tệp ViewController.swift của bạn và thay thế tất cả các tham chiếu đến 'ViewController' bằng tên mới của chúng tôi, 'SearchResultsViewController'. Đổi tên tệp cũng thành SearchResultsViewController.swift.

Nếu bạn cố gắng chạy ứng dụng từ đây, bạn sẽ gặp sự cố. Điều này là do tệp bảng phân cảnh của chúng tôi chưa được cập nhật để biết về lớp mới! Vì vậy, hãy mở Main.storyboard, chọn đối tượng 'View Controller' của bạn trong cảnh (điều hướng bên trái), sau đó chọn Identity Inspector (bên phải, nút thứ ba.)

Từ đây, hãy thay đổi lớp từ 'ViewController' thành 'SearchResultsViewController'. Bây giờ chúng ta sẽ trở lại đúng hướng. Kiểm tra xem dự án vẫn hoạt động và chúng ta hãy tiếp tục.


cảm ơn đã trả lời. Tôi đã thử nghiệm phương pháp này. Nhưng nó có vẻ không phải là cách tốt. Nếu tôi đang sử dụng các đối tượng ViewController.swift trong 10 lớp, tôi phải đổi tên chúng theo cách thủ công trong tất cả các lớp. Quá đau đớn và lãng phí thời gian :(
Khawar

@ Khawar- Vâng, bạn nói đúng, nhưng có thể không có lựa chọn nào khác bây giờ và swift cũng đang trong giai đoạn thử nghiệm. đừng lo lắng về nó .. hy vọng apple sẽ tìm ra một cách khác dễ dàng hơn sau đó (khách quan c ???) :)
iPatel

1
Tôi đang trên Version 7.2 (7C68) và refactoring đổi tên vẫn là không thể
Barbara R

Trong 7.3, nó cũng không thể.
ManiaChamp,


2

Xcode 9

Xcode 9 hiện hỗ trợ đổi tên bằng Swift. Điều này đã được công bố trong WWDC 2017.

nhập mô tả hình ảnh ở đây


Cảm ơn bạn, cảm ơn Apple, nhưng đổi tên vẫn không được. Bây giờ nó đang bị lỗi Xcode.
kisileno

Đúng ... Kể từ Phiên bản 9.0 beta, việc đổi tên khiến Xcode gặp sự cố. Nhưng đây là những gì là nghĩa vụ phải làm việc trong tương lai , bất cứ khi nào mà bạn có thể :)
Guy Daher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.