Tôi có hai đối tượng, cả hai đều là bộ điều khiển chế độ xem. Việc đầu tiên (Ill gọi nó viewController1) tuyên bố một giao thức. Thứ hai (mà không ngạc nhiên là tôi sẽ đặt tên viewController2) phù hợp với giao thức này.Không thể tìm thấy khai báo giao thức cho
XCode là đem lại cho tôi một lỗi build của: 'Không thể tìm thấy lời tuyên bố giao thức cho viewController1' câu hỏi khác nhau
Tôi đã thấy về chủ đề này và tôi chắc chắn nó là để làm với một lỗi vòng lặp, nhưng tôi chỉ có thể 't nhìn thấy nó trong trường hợp của tôi ...
Mã dưới đây ..
viewController1.h
@protocol viewController1Delegate;
#import "viewController2.h"
@interface viewController1 {
}
@end
@protocol viewController1Delegate <NSObject>
// Some methods
@end
viewController2.h
#import "viewController1.h"
@interface viewController2 <viewController1Delegate> {
}
@end
Ban đầu, tôi đã có dòng nhập khẩu viewController1 trên của tờ khai giao thức. Điều này đã ngăn cản dự án xây dựng ở tất cả. Sau khi tìm kiếm trên SO, tôi nhận ra vấn đề và chuyển đổi hai dòng xung quanh. Tôi hiện đang nhận được một cảnh báo (trái với một lỗi). Dự án xây dựng tốt và thực sự chạy hoàn hảo. Nhưng tôi vẫn cảm thấy có điều gì đó sai trái khi được cảnh báo.
Bây giờ, theo như tôi thấy, khi trình biên dịch nhận được viewController1.h, điều đầu tiên nó thấy là khai báo giao thức. Sau đó nó nhập khẩu tập tin viewController.h và thấy điều này thực hiện giao thức này.
Nếu nó biên dịch chúng theo cách khác, nó sẽ xem xét viewController2.h trước tiên, và điều đầu tiên nó sẽ làm là import viewController1.h dòng đầu tiên trong số đó là khai báo giao thức.
Tôi có thiếu gì đó không?
Tôi không thể ... (Tôi nên nói) ... viewController1 không cần hiển thị viewController2. –
Có '@class viewController2;' chỉ thị cho điều đó. Nhập tệp tiêu đề trong 'viewController1.m'. – Costique
Tôi đã cập nhật câu trả lời để minh họa điểm. – Costique