Một thông điệp là tên của một bộ chọn và các tham số cho bộ chọn đó.
Một bộ chọn là một biểu tượng.
Phương thức là một đoạn mã trong một lớp được xác định bởi bộ chọn.
Nói cách khác, [foo bar: baz]
nói "gửi tin nhắn được gọi @selector(bar:)
với tham số baz
đến đối tượng foo
. Bạn có thể gửi tin nhắn đó đến nhiều đối tượng khác nhau.
Ngược lại, phương thức bar:
cho một Foo
có thể trông giống như
-(int)bar:(int)n {
return n + 1;
}
nhưng FooTwo
có vẻ như
-(int)bar:(int)n {
return n + 2;
}
(Tôi hy vọng tôi có cú pháp đúng; đã một thời gian kể từ lần cuối tôi chạm vào Objective-C.)
Khi bạn gửi tin nhắn, nhân Objective-C sẽ gửi tin nhắn đến foo
quyết định xem nó có hiểu tin nhắn hay không. Nó quyết định điều này dựa trên việc nó có thể tìm ra một phương thức được xác định bởi bộ chọn đó hay không.
Hai phương thức có cùng tên và một thông điệp.
Cũng có thể một đối tượng chỉ cần chuyển tiếp một tin nhắn cụ thể (hoặc bộ tin nhắn) đến một đối tượng khác để xử lý. Trong trường hợp này, bạn gửi tin nhắn đến đối tượng proxy này, không có phương thức nào khớp với tin nhắn đó và proxy chuyển tiếp tin nhắn đến đối tượng được bọc của nó.