I just noticed there is no * in front of the declaration for a delegate ...
I did something like this :
@protocol NavBarHiddenDelegate;
@interface AsyncImageView : UIView {
NSURLConnection* connection;
NSMutableData* data;
UIActivityIndicatorView *indicator;
id <NavBarHiddenDelegate> delegate;
}
@property (nonatomic, assign) id <NavBarHiddenDelegate> delegate;
- (id)initWithUrl:(NSString*)url;
@end
@protocol NavBarHiddenDelegate
- (void)hideNavBar;
@end
It works perfectly well but as I am used to always but a * in front of objects I declare, why not for this one ?!?
Thank you,
Gotye.
This has nothing to do with delegates.
The type id
is different, for historical reasons; think of it as any-object *
. Whenever you write id
, there is no *
.
If there were a single root class Object
for all Objective-C objects then you could imagine that typedef Object * id;
— but there isn't, so id
is different (well, actually, it's defined as something like struct objc_object *
if I recall correctly, but you shouldn't worry about that implementation-detail-with-respect-to-this-level).