0
我有一個UDPSocket在我的控制器之一,我知道我必須使用代表。我必須添加哪些功能才能使其從另一個控制器訪問我的udpsocket?如何使用委託從另一個控制器發送消息到另一個控制器?
這將是偉大的使用不便像
[controller1.udpsocket sendData:data toHost:host]
,但我知道它不好,做什麼,而不是它?
我有一個UDPSocket在我的控制器之一,我知道我必須使用代表。我必須添加哪些功能才能使其從另一個控制器訪問我的udpsocket?如何使用委託從另一個控制器發送消息到另一個控制器?
這將是偉大的使用不便像
[controller1.udpsocket sendData:data toHost:host]
,但我知道它不好,做什麼,而不是它?
#import <Foundation/Foundation.h>
@protocol DownLoadImageDelegate<NSObject>
@required
-(void)ImageDownLoaded:(UIImage*)image;
@end
@interface DownLoadImage : NSObject
{
id<DownLoadImageDelegate> mDelegate;
NSURLConnection *mConnection;
NSMutableData *mData;
}
@property(nonatomic,retain) id<DownLoadImageDelegate> delegate;
@end
//InViewController class
DownLoadImage *imageDownLoad = [[DownLoadImage alloc]init];
imageDownLoad.delegate=self;
//and implement the delegate method declared in DownLoadImage class in ViewController class as
-(void)ImageDownLoaded:(UIImage *)image
{
NSLog(@"Image%@",image);
[mImageView setImage:image];
}
以及如何調用此函數? – 2012-04-05 14:34:15
我想我明白了,我需要將這些方法設置爲公開嗎? – 2012-04-10 11:44:52
在DowmLoadImage類中,一旦完成下載,就調用委託方法,如下所示: - (void)connectionDidFinishLoading:(NSURLConnection *)連接UIImage * image = [[UIImage alloc] initWithData:mData]; \t if(mDelegate && [mDelegate respondsToSelector:@selector(ImageDownLoaded:)]){ \t \t [mDelegate ImageDownLoaded:image]; \t} \t [mConnection release]; \t [image release]; \t [mData release]; } – sample 2012-04-11 06:26:01