Nếu phương thức trong giao thức được đánh dấu là tùy chọn, bạn phải kiểm tra xem đối tượng có triển khai phương thức đó trước khi thử gọi phương thức đó hay không.
Như một ví dụ, bảng xếp hạng xem chiếc bánh có thể kiểm tra đối với phương pháp tiêu đề phân khúc như thế này:
NSString *thisSegmentTitle;
if ([self.dataSource respondsToSelector:@selector(titleForSegmentAtIndex:)]) {
thisSegmentTitle = [self.dataSource titleForSegmentAtIndex:index];
}
Các respondsToSelector: Phương pháp sử dụng một bộ chọn, trong đó đề cập đến định danh cho một phương pháp sau khi biên dịch. Bạn có thể cung cấp mã định danh chính xác bằng cách sử dụng chỉ thị @selector() và chỉ định tên của phương thức.
Nếu nguồn dữ liệu trong ví dụ này thực hiện phương pháp, tiêu đề được sử dụng; nếu không, tiêu đề vẫn là không.
lưu ý rằng: Chỉ thị '' '@optional' '' và '' '@required' '' áp dụng cho bất kỳ phương pháp nào theo dõi nó. – Wayne