//block 和delegate的用法 设置代理
#import <UIKit/UIKit.h>
typedef void (^ASIHeadersBlock)(NSString *myString);
@protocol AHViewControllerDelegate <NSObject>
- (void)smyheadersReceivedBlock:(NSString *)string;
@end
@interface AHViewController : UIViewController
{
ASIHeadersBlock headersReceivedBlock;
NSObject <AHViewControllerDelegate> *delegate;
}
@property (nonatomic, assign) NSObject <AHViewControllerDelegate> * delegate;
- (void)setHeadersReceivedBlock:(ASIHeadersBlock)aReceivedBlock;
@end
---------------------------------------------------------------------
//
// AHViewController.m
// TestBlock
//
// Created by ganvin on 13-4-12.
// Copyright (c) 2013年 ganvin. All rights reserved.
//
#import "AHViewController.h"
@interface AHViewController ()
@end
@implementation AHViewController
@synthesize delegate;
- (void)setHeadersReceivedBlock:(ASIHeadersBlock)aReceivedBlock
{
[headersReceivedBlock release];
headersReceivedBlock = [aReceivedBlock copy];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if(headersReceivedBlock)
{
headersReceivedBlock(@"ssss");
}
if (delegate!= nil && [delegate respondsToSelector:@selector(smyheadersReceivedBlock:)])
{
[delegate performSelector:@selector(smyheadersReceivedBlock:) withObject:@"sssss"];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc
{
delegate = nil;
if (headersReceivedBlock)
{
[headersReceivedBlock release];
headersReceivedBlock = nil;
}
[super dealloc];
}
@end