2010-07-25 26 views
13

Tôi có một phương pháp hideButtonthực hiện: @selector sử dụng một phương pháp với các thông số

-(void) hideButton:(UIButton) *button { 
[button setHidden:YES]; 
} 

và tôi nhận được một "không thể sử dụng một đối tượng như tham số để một phương pháp" lỗi.

Tôi muốn để có thể cung cấp cho các nút như một tham số để phương pháp này khi gọi này

[self performSelector:@selector(hideButton:smallestMonster1) 
withObject:nil afterDelay:1.0]; 

Làm thế nào điều này có thể được thực hiện? như những nỗ lực trên không hoạt động. Tôi cần để có thể cung cấp cho các nút như là một tham số hoặc ít nhất là làm cho phương pháp nhận thức được nút được gọi là ẩn sau 1 giây.

Cảm ơn

Trả lời

20

Bạn có thể vượt qua tham số để chọn qua withObject tham số:

[self performSelector:@selector(hideButton:) withObject:smallestMonster1 afterDelay:1.0]; 

Lưu ý rằng bạn có thể vượt qua ít nhất 1 tham số theo cách này. Nếu bạn cần chuyển nhiều tham số hơn, bạn sẽ cần phải sử dụng lớp NSInvocation cho điều đó.

Edit: phương pháp kê khai đúng:

-(void) hideButton:(UIButton*) button 

Bạn phải đặt tham số kiểu bên trong(). Phương thức hideButton của bạn nhận con trỏ tới UIButton, vì vậy bạn nên đặt UIButton* tại đó

+0

Cảm ơn. Phương thức hideButton được đặt như thế nào để lấy đối tượng làm tham số? Nếu tôi cố gắng ở trên tôi nhận được không thể sử dụng đối tượng như lỗi tham số/ – jarryd

+0

Nó không rõ ràng vấn đề là gì ... hideButton định nghĩa phương thức là ok và nó nên được gọi đúng với câu trả lời của tôi ... trong tham số 1 performSelector - bạn cung cấp ký hiệu chọn, trong withObject - đối tượng như một tham số để chuyển tới bộ chọn. – Vladimir

+0

Dù bằng cách nào nếu tôi thử nút hideButton (UIButton), tôi gặp lỗi và nếu tôi thử nút hideButton (UIButton) *, tôi sẽ gặp lỗi. Tôi đã thử sử dụng (id) là tốt, nhưng các ứng dụng treo với bộ chọn không được công nhận gửi đến lỗi ví dụ. – jarryd

Các vấn đề liên quan