Tôi có mã này trong một phương pháp prepareForSegueObjective-C Gọi một selector rằng trình biên dịch không tin tồn tại (mặc dù chúng ta biết nó)
// Get destination view
UIViewController *viewController = [segue destinationViewController];
//See if it responds to a selector
if ([viewController respondsToSelector:@selector(setSomethingOrOther:)]) {
//if so call it with some data
[viewController setSomethingOrOther:something];
}
Đoạn mã trên có nghĩa là tôi không cần phải bao gồm tham chiếu đến lớp thực tế của bộ điều khiển xem đang được phân tách. Tôi có thể nhiều hơn một vài lỏng lẻo hai bộ điều khiển xem và chỉ cần kiểm tra xem nó phản ứng với một số tài sản được thiết lập trên nó.
Vấn đề là khi tôi làm điều này tôi nhận được lỗi sau biên dịch thời gian:
Không @ interface có thể nhìn thấy cho 'UIViewController' tuyên bố chọn 'setSomethingOrOther:'
đó là đúng tất nhiên . Tôi biết tôi có thể vượt qua nó bằng cách bao gồm một tham chiếu đến quan điểm nhưng tôi muốn giữ nó tách biệt. Làm thế nào tôi có thể làm việc xung quanh
Cảm ơn bạn, tôi cảm thấy như một thằng ngốc. Đã sử dụng điều này một chút công bằng trong các tình huống khác. –