2011-12-17 37 views
16

Đôi khi tôi có giao diện thực hiện một số giao thức và tôi sẽ nhận được cảnh báo từ XCode rằng việc triển khai của tôi chưa hoàn tất. Có một cách dễ dàng để xác định phương pháp nào là "bắt buộc" nhưng được triển khai (không cần phải triển khai dummy của tất cả các phương thức không bắt buộc từ tệp tiêu đề giao thức) không? Không.Cách xác định phương thức nào không được triển khai khi XCode có cảnh báo

Ví dụ, tôi có cảnh báo trên giao diện này nhưng tôi không muốn đào sâu qua tất cả các giao thức .. rõ ràng XCode biết rằng một số bị thiếu, tại sao nó không thể cho biết chúng là gì!

@interface KTThumbsViewController : UIViewController <KTThumbsViewDataSource, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIAlertViewDelegate> 

XCode 4

enter image description here

+1

nó nói 'Phương pháp được khai báo ở đây' Nếu bạn nhấp vào đó. nó sẽ hiển thị cho bạn khai báo phương thức. –

Trả lời

6

Bấm alt và click vào giao thức, xcode sẽ cho bạn thấy nơi nó được định nghĩa để bạn có thể có một cái nhìn tại các tập tin tiêu đề. Ngoài ra, trong tab "vấn đề", nó sẽ hiển thị cho bạn những phương pháp bạn chưa triển khai.

+0

"Tôi không muốn đào sâu qua tất cả các giao thức". Trình điều hướng sự cố chỉ nói "Triển khai không đầy đủ" - nó không liệt kê các phương thức không được triển khai - xem ảnh chụp màn hình. –

+0

@ P1X3L5 dude, kiểm tra ảnh chụp màn hình OWN của bạn, nó hiển thị cho bạn những gì bạn chưa triển khai, có 2 mục trong danh sách ở đó cho tệp nguồn hiển thị vấn đề SAME –

+2

Nó cho tôi biết ** SOMETHING ** bị thiếu, nhưng không phải nó là gì - đó là gốc rễ của câu hỏi ban đầu của tôi. Hóa ra đó là một phương thức gọi là - (void) didAddPhoto: không được đề cập ở bất cứ đâu trong ảnh chụp màn hình.Có, nó cho tôi biết giao thức nào mà tôi đang thiếu (và tôi không nhận thấy rằng trước khi cảm ơn vì đã chỉ ra điều đó), nhưng điều đó có thể có giá trị khá hạn chế - tôi đang tìm kiếm một danh sách các phương thức chưa được thực hiện mà không cần phải đi qua lại giữa lớp mt và định nghĩa giao thức. –

8

Rất tiếc, không tìm thấy câu trả lời ở đây. Nhưng nhiều hơn một chút đào lên một câu trả lời, trong điều hướng phát hành trong Navigator View.

Mở giao diện Navigator qua Xem các nút ở góc trên bên phải:

View Navigator toggle button

Sau đó mở navigator Issue thông qua nút dấu tam giác/chấm than ở góc trên bên trái:

enter image description here

Nếu bạn mở rộng vấn đề ngữ nghĩa "Thực hiện chưa đầy đủ" với hình tam giác nhỏ ở bên trái, bạn có thể xem chi tiết về khiếu nại của XCode.

1

Là một followup này

Đôi khi "thực hiện không đầy đủ" thực sự có nghĩa là "không phù hợp giữa các nguyên mẫu hàm và chức năng thực hiện".

Ví dụ, nếu trong file .h của bạn, bạn có này:

- (NSTimeInterval) SayDigit: (int) score; 

Nhưng trong file .m của bạn, bạn có này:

- (NSTimeInterval) SayDigit: (int) digit: (NSTimeInterval) time 

Bạn sẽ nhận được "thực hiện không đầy đủ" cảnh báo .

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