IOS-간단한 네트워크 NSURLconnection 사용
#import <Foundation/Foundation.h>
@class MyConnection;
//
@protocol MyConnectionDelegate <NSObject>
//
- (void)MyConnectionDidFinish:(MyConnection*)con Data:(NSData*)data;
//
- (void)MyConnectionDidFail:(MyConnection*)con;
@end
@interface MyConnection : NSObject<NSURLConnectionDataDelegate>{
NSMutableData* imageData;
}
- (id)initWithUrl:(NSString*)url Delegate:(id)delegate;
@property (nonatomic,assign) id<MyConnectionDelegate> delegate;
@property (nonatomic,retain) NSString* url;
@property (nonatomic,assign) int tag;
@end
#import "MyConnection.h"
#import "NSString+Hashing.h"
@implementation MyConnection
@synthesize url = _url;
@synthesize delegate = _delegate;
@synthesize tag = _tag;
- (id)initWithUrl:(NSString *)url Delegate:(id)delegate{
if (self = [super init]) {
self.delegate = delegate;
self.url = url;
imageData = [[NSMutableData alloc] init];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:30.0];
[NSURLConnection connectionWithRequest:request delegate:self];
}
return self;
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[imageData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
//
//http://192.168.88.8/wer/1.png
//MD5 base64
//
// /var/user/24234234/tmp/kjhaksdf87asd7f8a7sd8f78as7df
//http://192.168.88.8/2.png
//base64
//AAhttp://www.baidu.com/1.rarZZ
//thrund://alkdjflashdfkjhasdkjf==
NSString* path = NSHomeDirectory();
path = [NSString stringWithFormat:@"%@/tmp/%@",path,[self.url MD5Hash]];
[imageData writeToFile:path atomically:NO];
//
[_delegate MyConnectionDidFinish:self Data:imageData];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
//
[_delegate MyConnectionDidFail:self];
}
- (void)dealloc{
[imageData release];
self.url = nil;
[super dealloc];
}
@end
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.