2008-10-11 27 views
28

Trong Visual Studio nếu tôi xác định một lớp để triển khai giao diện, ví dụ:Có tổ hợp phím nào trong Xcode để triển khai Giao thức không?

class MyObject : ISerializable {} 

tôi có thể kích chuột phải vào ISerializable, chọn "Thực hiện giao diện" từ menu ngữ cảnh và xem các phương pháp thích hợp xuất hiện trong định nghĩa lớp học của tôi.

class MyObject : ISerializable { 
    #region ISerializable Members 
    public void GetObjectData(SerializationInfo info, 
       StreamingContext context) 
    { 
     throw new NotImplementedException(); 
    } 
    #endregion 
} 

Có điều gì giống như chức năng này có sẵn trong Xcode trên máy Mac không? Tôi muốn có thể tự động thực hiện các giao thức theo cách này. Có thể với các phương pháp tùy chọn được tạo nhưng đã nhận xét.

Trả lời

6

Tôi chưa thấy tính năng đó trong Xcode. Nhưng có vẻ như ai đó có thể viết một tập lệnh người dùng mới có tên "Place Implementor Defs on Clipboard" nằm bên trong Scripts> Code.

Bạn không thấy điều này hữu ích.

+10

Ai không tìm thấy những gì hữu ích, và tại sao, và apropos của những gì? – nmr

5

Hiện tại, không có hiện tượng tái cấu trúc như vậy trong Xcode.

Nếu bạn muốn, vui lòng gửi enhancement request.

0

Macrumors cũng đã thảo luận về vấn đề này. Có một liên kết đến một số kịch bản táo. Tôi đã không thực sự cố gắng này.

1

Xcode có thể giúp bạn mỗi phương pháp giao thức, cho phép nói rằng bạn có một giao thức như thế này:

@protocol PosterousWebsitesDelegate <NSObject> 
- (void)PosterousWebsitesLoadSuccess:(PosterousWebsites*)websites; 
@end 

trong phần @implementation file .m của bạn, bạn có thể bắt đầu viết tên của phương pháp này và nhấn ESC để tự động hoàn thành chữ ký của phương thức/công cụ chọn:

-(void)Poste (...press ESC...) 

Xcode sẽ tự động hoàn thành chữ ký đầy đủ của phương thức @protocol, TAB để xác nhận mã.

Nếu bạn đang thực sự cam kết học OSX/Phát triển iOS, tôi sẽ đề nghị bạn đọc "XCode 3 Unleashed", một cuốn sách thực sự giúp tôi biết Xcode như sâu như tôi biết VS :)

+1

Bạn thậm chí có thể làm điều đó nhanh hơn bằng cách chỉ cần viết '- P (nhấn ESC)' (không có kiểu trả về - Xcode5 sẽ vẫn hiển thị bộ chọn chính xác). Xem Development_gems từ video wwdc ... – liefersfl

22

XCode hiện không hỗ trợ loại tự động hóa đó. Nhưng: một cách dễ dàng để có được mã của bạn bootstrapped với một giao thức là để lựa chọn vào tên giao thức trong khai báo lớp bạn

@interface FooAppDelegate : NSObject <NSApplicationDelegate, 
             NSTableViewDelegate> { 

để nhanh chóng mở file .h định giao thức. Từ đó, sao chép và dán các phương thức mà bạn quan tâm. Các tiêu đề này có xu hướng được nhận xét tốt, giúp xác định phương pháp nào bạn có thể bỏ qua một cách an toàn.

+1

Nhưng bạn không trả lời câu hỏi. Anh ta hỏi về một sự kết hợp quan trọng để thêm chúng để tránh làm việc sao chép/dán. – lagos

+2

@lagos Tôi nghĩ Clay đang trả lời câu hỏi. Anh ấy nói câu trả lời là "không" và đưa ra một giải pháp thay thế. –

2

Tôi biết chủ đề này hơi cũ, nhưng tôi tự hỏi điều tương tự và tìm thấy câu hỏi này.

Trong trường hợp của mình, tôi định nghĩa thuộc tính trong giao diện (.h) và tôi muốn tổng hợp nó trong quá trình triển khai (.m). Tôi cũng cần triển khai các phương thức được định nghĩa trong giao diện. Có, Xcode giúp như những người khác đã đề cập, nhưng IDE hiện đại cung cấp những cải tiến năng suất cho những điều chúng tôi làm thường xuyên. Có vẻ như đây vẫn chưa phải là một tính năng trong Xcode 4.3.3. Tuy nhiên, tính năng này có sẵn trong JetBrains' AppCode. Tôi chỉ muốn thử nghiệm, nhưng dường như chỉ có thể có một thuộc tính hoặc phương pháp tại một thời điểm, không phải toàn bộ giao diện như Visual Studio.

Các vấn đề liên quan