Tôi thấy hai phương pháp xử lý đối tượng người gửi trong các câu lệnh IBAction. Là người đầu tiên trông như thế này:Gửi người gửi đến IBAction dưới dạng id hoặc lớp cụ thể
-(IBAction)buttonPressed:(id)sender{
UIButton*someButton=(UIButton*)sender;
//do something with someButton.tag or whatever
}
dường như khác dễ dàng hơn:
-(IBAction)buttonPressed:(UIButton*)sender{
//do something with sender.tag or whatever
}
Tôi thường lựa chọn phiên bản 2. Bất kỳ lý do cụ thể để thích một phong cách trong khác, nếu bạn biết rằng chỉ có một nút sẽ được gửi đến phương pháp này?
tôi có thể nhìn thấy nơi phiên bản 1 là tốt nếu bất cứ điều gì có thể là một người gửi, giống như một nút, hoặc chuyển đổi hoặc thanh trượt, vv Tuy nhiên, nếu bạn đang tìm kiếm UIButton
tính như tag
nó sẽ không làm cho nhiều khác biệt nếu người gửi của bạn không phải là UIButton
. Vì vậy, phiên bản 2 có vẻ đơn giản hơn rất nhiều.
Chỉ cần nghĩ rằng tôi sẽ thấy nếu tôi thiếu lý do rõ ràng để thích phiên bản 1.
Không thực hiện bất kỳ sự khác biệt, nhưng đôi khi bạn đang sử dụng các hành động tương tự đối với nhiều đối tượng khác nhau và sử dụng để chọn cái nào trong số đó là đúng, vì vậy nó thực sự phụ thuộc vào nhu cầu của bạn. Interface Builder không quan tâm. –