- 博客(51)
- 资源 (16)
- 收藏
- 关注
转载 客户端到服务器端的通信过程及原理
学习任何东西,我们只要搞清楚其原理,就会触类旁通。现在结和我所学,我想总结一下客户端到服务器端的通信过程。只有明白了原理,我们才会明白当我们程序开发过程中错误的问题会出现在那,才会更好的解决问题。我们首先要了解一个概念性的词汇:Socketsocket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其
2016-01-02 11:32:46
6386
2
转载 从输入网址到显示网页的全过程分析
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器里输入要网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:
2016-01-02 11:09:54
1003
转载 iOS之nil,Nil,null,Null,NULL,NSNull
1、nil: 指向一个对象的空指针;2、Nil:指向一个类的空指针;3、NSNull:通常表示集合中的空值;[NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值. [NSNull null]是一个对象,他用在不能使用nil的场合。NSNull只有一个方法:+ (NSNull *) null, 表
2015-12-27 22:57:00
484
转载 iOS Provisioning Profile(Certificate)与Code Signing详解
引言 关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾。对于一个iOS开发小白、半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以下不详、疑问、疑惑甚至困惑:什么是App ID?Explicit/Wildcard App ID有何区别?什么是App Gro
2015-12-27 22:50:20
771
转载 Objective C运行时(runtime)技术的几个要点总结
前言: Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/class_addMethod函数在运行时对函数进行动态替换或增加新函数(2)重载for
2015-12-27 12:16:57
639
转载 关于json中null的问题
在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式。问题现象但是几个项目下来一直遇到一个坑爹的问题,程序在获取某些数据之后莫名崩溃。其实很早就发现了原因:由于服务器的数据库中有些字段为空,然后以Json形式返回给客户端时就会出现这样的数据:"somevalue":null通过JsonKit 这个第三方库解析出来的数据就成了som
2015-12-27 11:53:11
2968
转载 GCD 深入理解(二)
在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工作的知识。通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过使用 dispatch_barrier_async 和 dispatch_sync 的组合使得对 Photos 数组的读取和写入都变得线程安全了。
2015-12-27 11:45:44
527
转载 GCD 深入理解(一)
虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Objective-C 的平滑世界。我们将分两个部分的教程来深入学习 GCD 。
2015-12-27 11:41:38
655
原创 iOS第三方支付(支付宝SDK)
现在不少app内都集成了支付宝功能,因此对于iOS开发人员来说,也应该熟悉第三方支付关于安全支付的流程,支付宝的文档里有个很好的图数据流程使用支付宝进行一个完整的支付功能,大致有以下步骤:与支付宝签约,获得商户ID(partner)和账号ID(seller)下载相应的公钥私钥文件(加密签名用)下载支付宝SDK生成订单信息调用支付宝客户
2014-03-26 14:26:27
12800
原创 iOS远程消息推送
苹果提供了一堆服务器,每个ios设备和这些服务器保持了一个长连接,ios版本更新提示、手机时钟校准等操作都是通过这个连接实现。消息推送服务简称为APNS(Apple Push Notification Service),是该长连接中的一个服务,如果要向用户发消息,必须通过APNS进行中转。消息推送不支持群发,只能一个一个发,消息包一般由两部分组成:标示用户手机的id(32个字节)+消息体(
2014-03-26 01:05:51
2172
原创 iOS6&iOS7之屏幕适配
都说iOS6和iOS7的导航栏那20个点是iOS程序员心中永远的痛,但不管咋说问题总是要解决,废话不多说,上代码一、没有包装任何 导航控制器 或者 UITabBarController1.控制器的view是UIScrollView\UITableView\UICollectionView时(控制器是UITableViewController的时候)- (void)viewDidLoad
2014-03-25 16:59:31
1362
原创 Socket网络协议简单介绍和使用
Socket就是为网络服务提供的一种机制在Unix中,网络既是Socket,并不局限在TCP/UDP ,Socket可以用于自定义协议,例如:QQ通信的两端都是Socket网络通信其实就是Socket间的通信数据在两个Socket间通过IO传输Socket通讯流程图:socket通信的特点:使用Socket开发网络通讯在Web服务(WebServices=>XM
2014-03-01 00:44:28
1897
原创 第三方框架SDWebImage的使用
SDWebImage托管在github上。https://github.com/rs/SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。将SDWebImage类库添加入工程时,一定注意需要添加MapKit.framework,如图所示,因为MKAnnotationView+Web
2014-03-01 00:23:20
1571
转载 iOS中多线程原理与runloop介绍
一.线程概述有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断。直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样;圆如操作系统,一直运行直到你关机。 一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。Mac和iOS中的程序启动,创建好一个进程的同时, 一个线程便开始运行,这个线程叫主
2014-02-24 23:29:32
910
原创 OC之NSURLSession的用法一
NSURLSession是iOS7中新的网络接口,它与的NSURLConnection是并列的。在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作。如果用户强制将程序关闭,NSURLSession会断掉。 NSURLSession提供的功能:1.通过URL将数据下载到内存2.通过URL将数据下载到文件系统3.将数据上传到指定URL4.在后台完成上述功能在普通的
2014-02-24 21:03:13
3558
原创 OC之基本控件五
UITableViewUITableView内置了两种样式:UITableViewStylePlain,UITableViewStyleGrouped里的方法:tableView处理步骤#pragma mark 1.有多少组- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView#pragma mark 2.第
2014-02-23 22:11:06
1136
原创 OC之XML解析
1.XML简介:它是一种可扩展标记语言用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言易读性高,编码手写难度小,数据量大2.XML的两种解析方式1 SAX(Simple API for XML)只能读,不能修改,只能顺序访问,适合解析大型XML,解析速度快常应用于处理大量数据的XML,实
2014-02-23 13:32:39
4105
原创 OC之JSON数据解析
JSON介绍:作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式基于JavaScript的一个子集易读性略差,编码手写难度大,数据量小JSON格式取代了XML给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁琐复杂的数据节点查找中1.解析格式说明:当数据结构为 {key:value,key:
2014-02-23 13:16:56
5789
转载 UIKit框架类之窗口和视图架构介绍
窗口和视图窗口和视图是为iPhone应用程序构造用户界面的可视组件。窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互。虽然本章讨论的概念和窗口及视图都相关联,但是讨论过程更加关注视图,因为视图对系统更为重要。视图对iPhone应用程序是如此的重要,以至于在一个章节中讨论视图的所有方面是不可能的。本章将关注窗口和视图的基本属性、各个属性之间的关系、以及在
2014-02-23 11:00:04
1423
原创 OC之基本控件四
UIScrollView的常用属性和使用方法1. contentOffset默认CGPointZero,用来设置scrollView的滚动偏移量。 // 设置scrollView的滚动偏移量 scrollView.contentOffset = CGPointMake(0, 200);2. contentSize默认CGSizeZero,用来设置scrollVi
2014-02-23 10:55:16
1179
原创 OC之基本控件三
UIPikerView的使用1. numberOfComponents:返回UIPickerView当前的列数NSInteger num = _pickerView.numberOfComponents;NSLog( @"%d", num);2. - (NSInteger)numberOfRowsInComponent:(NSInteger)component; 返回compone
2014-02-23 10:51:18
978
原创 OC之基本控件二
UIDatePicker 1. Locale设置DatePicker的地区,即设置DatePicker显示的语言。// 1.跟踪所有可用的地区,取出想要的地区 NSLog(@"%@", [NSLocale availableLocaleIdentifiers]); // 2. 设置日期选择控件的地区[datePicker setLocale:[[NSLoca
2014-02-23 10:46:08
1754
原创 OC之基本控件一
一、UIButton1.UIButton状态:UIControlStateNormal // 正常状态 UIControlStateHighlighted // 高亮状态 UIControlStateDisabled // 禁用状态 UIControlStateSelected // 选中状态
2014-02-23 10:28:18
2909
原创 OC之UIKit类的继承结构图
先贴一个UIKit类的结构图,明确一下继承关系注意一下,UIResponder这个类,它是UIApplication和UIView的超类,UIResponder类定义了对象相应和控制事件的接口,它的实例通常被称为应答对象。 这个类中主要的触摸方法法是:touchesBegan:withEvent:, touchesMoved:withEvent:, touchesEnded:
2014-02-23 09:51:41
2446
原创 OC之自定义归档
//// main.m// 自定义归档//// Created by New-World on 13-11-5.// Copyright (c) 2013年 Gary. All rights reserved.//#import #import "User.h"int main(int argc, const char * argv[]){ @autorel
2013-11-13 20:39:56
982
原创 OC之谓词
//// main.m// 谓词//// Created by New-World on 13-11-6.// Copyright (c) 2013年 Gary. All rights reserved.//#import #import "Person.h"int main(int argc, const char * argv[]){ @autorele
2013-11-13 20:38:04
1136
原创 OC之归档
//// main.m// 归档//// Created by New-World on 13-11-5.// Copyright (c) 2013年 Gary. All rights reserved.//#import int main(int argc, const char * argv[]){ @autoreleasepool {#pragma
2013-11-13 20:35:49
1236
原创 OC之Foundation框架NSSet
//// main.m// NSSet//// Created by New-World on 13-11-2.// Copyright (c) 2013年 Gary. All rights reserved.//#import int main(int argc, const char * argv[]){ @autoreleasepool {
2013-11-13 20:32:20
1221
原创 OC之文件管理复制文件
//// main.m// NSFIleHandleTask2//// Created by New-World on 13-11-3.// Copyright (c) 2013年 Gary. All rights reserved.//#import #define Max 5000 //每次读取文件的大小int main(int argc, const char *
2013-11-13 20:29:21
1242
原创 OC之文件管理写入文件
//// WriteDate.m// NSFIleHandleTask1//// Created by New-World on 13-11-3.// Copyright (c) 2013年 Gary. All rights reserved.//#import "WriteDate.h"@implementation WriteDate-(void)runWrite
2013-11-13 20:26:39
1577
原创 OC之文件管理NSFileHandle
//// main.m// NSFileHandle//// Created by New-World on 13-11-2.// Copyright (c) 2013年 Gary. All rights reserved.//#import int main(int argc, const char * argv[]){ @autoreleasepool
2013-11-13 20:23:32
1008
原创 OC语法之Copy
//// main.m// coy//// Created by New-World on 13-11-3.// Copyright (c) 2013年 Gary. All rights reserved.//#import int main(int argc, const char * argv[]){ @autoreleasepool {
2013-11-13 20:19:08
949
原创 OC语法之Block
//// main.m// Block//// Created by New-World on 13-11-11.// Copyright (c) 2013年 Gary. All rights reserved.//#import #import "Button.h"#import "Person.h"typedef int (^MySum)(int,int);
2013-11-13 20:15:13
1069
原创 OC语法之NSDictionary
#import int main(int argc, char const *argv[]){ NSNumber *number=[NSNumber numberWithInt:100];//包装基本数据类型 NSDictionary *dic=[NSDictionary dictionaryWithObject:number forKey:@"key"]; //初始化两个元素 NSD
2013-11-02 00:34:43
1482
原创 C语言之指针
//// main.c// 指针//// Created by New-World on 13-10-24.// Copyright (c) 2013年 Gary. All rights reserved.//#include void change(int *n){ *n=10;}#pragma 不能交换外面变量的值,因为基本数据类型作为参数是值传递vo
2013-11-01 22:25:01
896
原创 OC语法之NSString
//// main.m// NSString//// Created by New-World on 13-10-30.// Copyright (c) 2013年 Gary. All rights reserved.//#import #import "string.h"#pragma mark NSString的创建int main(int argc, cons
2013-11-01 22:21:58
784
原创 OC语法之NSArray数组
#import int main(int argc, char const *argv[]){ //-------------------------NSArray ----------------- NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init]; NSArray *array1=[NSArray arrayWithO
2013-11-01 21:56:17
942
原创 Java基础加强之类加载器
* 类加载器 * Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类: * BootStrap,ExtClassLoader,AppClassLoader * * 类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一 * 个类加载器不是java类,这正是BootStrap * ExtClass
2013-09-19 23:17:22
788
原创 多线程之交通灯系统
一、需求分析1.异步随机生成按照各个路线行驶的车辆。例如:由南向而来去往北向的车辆 ---- 直行车辆,由西向而来去往南向的车辆 ---- 右转车辆,由东向而来去往南向的车辆 ---- 左转车辆等等2.信号灯忽略黄灯,只考虑红灯和绿灯。应考虑左转车辆控制信号灯,右转车辆不受信号灯控制。3.具体信号灯控制逻辑与现实生活中普通交通灯控制逻辑相同,不考虑特殊情况下的控制逻辑。4.南北
2013-09-19 21:32:00
1146
原创 多线程之银行调度系统
一、项目需求1. 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。2. 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。3. 异步随机生成各种类型的客户,生成各类型用户的概率比例为:VIP客户 :普通客户 :快速客户 = 1 :6 :3。4. 客户办理业务所需时间有最大值和最小值,在该范围
2013-09-19 20:50:13
918
Web 技术教程
2011-09-25
XML轻松学习手册
2011-09-25
C_.NET实训教材.doc
2011-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人