单例 HTTP socket 日期 阴影 代理
来源:互联网 发布:汕头哪有美工培训班 编辑:程序博客网 时间:2024/06/08 18:10
static ClassA *classA = nil;//静态的该类的实例
+ (ClassA *)sharedManager
{
@synchronized(self) {
if (!classA) {
classA = [[super allocWithZone:NULL]init];
}
return classA;
}
}
- static AccountManager *DefaultManager = nil;
- + (AccountManager *)defaultManager {
- if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init];
- return DefaultManager;
- }
- + (AccountManager *)sharedManager
- {
- static AccountManager *sharedAccountManagerInstance = nil;
- static dispatch_once_t predicate;
- dispatch_once(&predicate, ^{
- sharedAccountManagerInstance = [[self alloc] init];
- });
- return sharedAccountManagerInstance;
- }
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协议的抽象,从而形成了我们知道的一些最基本的函数接口。
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 alloc] initWithFrame:CGRectMake(10, 150, 145, 67.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 alloc] init];
[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 alloc] init];
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];
[formatter setDateFormat:format];
NSDate *date = [formatter dateFromString:dateString];
[formatter release];
return date;
}
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"2019年03月01日",@"2013年03月01日",@"2014年03月01日", nil];
NSArray *array2 = [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy年MM月dd日"];
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];
}
- 单例 HTTP socket 日期 阴影 代理
- http代理和socket代理
- http代理和socket代理
- Socket,http代理
- 【转】Socket通过HTTP代理发送数据
- 单例代理
- [单例、代理 & 通知]
- HTTP 隧道 (HTTP代理Socket客户) (转)
- 单例socket
- 手写代理和单例
- 在socket中用http代理访问网页的关键问题
- 在socket中用http代理访问网页的关键问题
- http 代理
- Http-代理
- HTTP代理
- http代理
- Http代理
- http代理
- CSS简单表格样式
- C/C++ Volatile关键词深度剖析
- Material Design 之 侧边栏与 SystemBar 不得不说的故事
- 为什么匿名内部类参数必须为final类型
- Linux中断(interrupt)子系统之三:中断流控处理层
- 单例 HTTP socket 日期 阴影 代理
- Android的数据存储--File
- Ehcache整合Spring实例
- WEB标准
- html历史
- Android 命名规范 (提高代码可以读性)
- NSData和NSMutableData
- 手把手教你选择高速抓拍工业相机
- python2.xhe 3.x区别