tags:

views:

2345

answers:

2

I have the following ViewController class

#import <UIKit/UIKit.h>

@interface SampleViewController : UIViewController {
    IBOutlet UITextField *field1;
}

@property (nonatomic, retain) UITextField *field1;

- (IBAction) method1:(id)sender; 
@end

When I change the method1:(id)sender to method1:(UITextField)sender, I get the error "Cannot use an object as a parameter to a method".

I searched and found this post which says "it [using an object as a method parameter] is not a good idea in Objective-C because Objective-C does not allow statically allocated object".

Can anyone point out where I can find a more detailed explanation for this?

Thank you.

+16  A: 

You're not passing a pointer of UITextField.

method1:(UITextField)sender

should be

method1:(UITextField *)sender

Objective-C doesn't like it when you pass non-pointers for object types.

Marc W
Interestingly, you can pass it if it is a struct rather than object
Casebash
A: 

Simple and correct answer. Thanks, been searching for hours.

Peter
Peter, please don't post comments until you gain enough rep to post them as comments instead of answers
Casebash