@protocol UserDelegate<NSObject>
- (void)doSomething;
@end@interface User:NSObject
@property (nonatomic,weak) id<UserDelegate> delegate;
@end#import <Foundation/Foundation.h>
#import "User.h"
@interface APP : NSObject<UserDelegate>
@property (nonatomic,strong) User *user;
@end if (user.delegate && [user.delegate respondsToSelector:@selector(doSomething)]) {
[user.delegate doSomething];
}Effective+Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法