单例 HTTP socket 日期 阴影 代理

来源:互联网 发布:汕头哪有美工培训班 编辑:程序博客网 时间:2024/06/08 18:10

static ClassA *classA = nil;//静态的该类的实例 

+ (ClassA *)sharedManager 

{ 

@synchronized(self) { 

if (!classA) { 

classA = [[super allocWithZone:NULL]init]; 

return classA; 

} 


  1. static AccountManager *DefaultManager = nil;  
  2.    
  3. + (AccountManager *)defaultManager {  
  4.     if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init];  
  5.     return DefaultManager;  


  1. + (AccountManager *)sharedManager  
  2. {  
  3.         static AccountManager *sharedAccountManagerInstance = nil;  
  4.         static dispatch_once_t predicate;  
  5.         dispatch_once(&predicate, ^{  
  6.                 sharedAccountManagerInstance = [[self alloc] init];   
  7.         });  
  8.     return sharedAccountManagerInstance;  
  9. }  


socket连接和http连接的区别  CFSocketRef

简单说,你浏览的网页(网址以http://开头)都是http协议传输到你的浏览器的, 而http是基于socket之上的。socket是一套完成tcp,udp协议的接口。

HTTP协议:简单对象访问协议,对应于应用层  ,HTTP协议是基于TCP连接的

tcp协议:    对应于传输层

ip协议:     对应于网络层 
TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉;

socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。所以当一个socket连接中没有数据的传输,那么为了维持连接需要发送心跳消息~~具体心跳消息格式是开发者自己定义的

我们已经知道网络中的进程是通过socket来通信的,那什么是socket呢?socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭),这些函数我们在后面进行介绍。我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。
1)Socket是一个针对TCP和UDP编程的接口,你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层 。
  而http是个应用层的协议,它实际上也建立在TCP协议之上。 

 (HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。)

 2)Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口。


 TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
    简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般


 lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -output libbaidumapapi.a

图片无损拉伸

[[UIImage imageNamed:@"message_send_box_other1.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:30];


添加阴影

UIImageView* leftView = [[UIImageView allocinitWithFrame:CGRectMake(1015014567.5)];

    leftView.userInteractionEnabled = YES;

    leftView.image = [UIImage imageNamed:@"dining3"];

    leftView.contentStretch = CGRectMake(0.5, 0.5, 0, 0);


日期格式转换

- (NSString *)stringFormDate:(NSDate*)date format:(NSString *)format

{

    NSDateFormatter *formatter = [[NSDateFormatter allocinit];

[formatter setTimeZone:[NSTimeZone defaultTimeZone]];

[formatter setDateFormat:format];

NSString *dateString = [formatter stringFromDate:date];

[formatter release];

return dateString;

}


- (NSDate *)dateFormString:(NSString *)dateString format:(NSString *)format

{

    NSDateFormatter *formatter = [[NSDateFormatter allocinit];

    [formatter setTimeZone:[NSTimeZone defaultTimeZone]];

    [formatter setDateFormat:format];

    NSDate *date = [formatter dateFromString:dateString];

    [formatter release];

    return date;

}


    NSMutableArray *array = [[NSMutableArray allocinitWithObjects:@"20190301",@"20130301",@"20140301"nil];

    

    NSArray *array2 = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

        NSDateFormatter *formatter = [[NSDateFormatter allocinit];

        [formatter setDateFormat:@"yyyyMMdd"];

        NSDate *date1 = [formatter dateFromString:obj1];

        NSDate *date2 = [formatter dateFromString:obj2];

        return [date1 compare:date2];

    }];

    for (int i = 0; i < [array2 count]; i++) {

        NSLog(@"%@", [array2 objectAtIndex:i]);

    }

 


//代理和事件的判断

    if (self.delegate && [self.delegate respondsToSelector:@selector(didSelecteFace:andIsSelecteDelete:)]) {

        [self.delegate didSelecteFace:faceName andIsSelecteDelete:isDelete];

    }


0 0
原创粉丝点击