![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 56
王晓睿
这个作者很懒,什么都没留下…
展开
-
Foundation框架提供的一些基本对象的用法之数字对象
int型、float型、long型等都是objective-c语言中的基本数据类型,严格的说它们不是对象(不能向他们发送消息)。然而,有时需要将这些值作为对象使用。比如,使用Foundation的NSArray对象创建一个数组,它要求存储的值必须是对象,因此,不能将任何基本数据类型直接存储到数组中。如果需要存储基本数据类型(包括char数据类型),可以使用NSNumber类,它会依据这些数据的原创 2015-08-01 00:07:09 · 400 阅读 · 0 评论 -
HTTPS详析(二)
一、简介HTTPS即 HTTP + SSL 层,具体介绍在这里。二、HTTPS与HTTP的区别这里用两张图来介绍两者的区别:HTTP:当客户端发送请求,那么服务器会直接返回数据。HTTP.pngHTTPS:当客户端第一次发送请求的时候,服务器会返回一个包含公钥的受保护空间(也成为证书),当我们发送请求的时候,公钥会将请求加密再发送给服务器,服务器转载 2017-05-21 11:09:12 · 600 阅读 · 0 评论 -
HTTPS详析(一)
1. HTTPS其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全;而对于接收端,在SSL/TSL将接收的数据包解密之后,将数据传给HTTP协议层,就是普通的HTTP数据。HTTP和SSL/TSL都处于OSI模型的应用层。从HTTP切换到HTTPS是一个非常简转载 2017-05-21 11:07:02 · 395 阅读 · 0 评论 -
HTTPS请求(三)
本文分为以下五节:中间人攻击:介绍中间人攻击常见方法,并模拟了一个简单的中间人攻击;校验证书的正确姿势:介绍校验证书的一些误区,并讨论了正确校验方式;ATS:讨论下 iOS 9.0 新发布的的特性App Transport Security;调试SSL/TLS:讨论使用Wireshark进行SSL/TLS调试的方法;后记其中第1节“中间人”是比较常见基础的知识,网上也可以找转载 2017-05-21 11:12:42 · 2794 阅读 · 0 评论 -
GCD常用方法
1、常用的方法dispatch_asyncdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 耗时的操作 dispatch_async(dispatch_get_main_queue(), ^{ // 更新界面 })原创 2017-05-21 11:16:23 · 457 阅读 · 0 评论 -
正则表达式
定义:又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本;使用步骤1.定义正则表达式规则2.通过规则,创建正则表达式对象3.利用正则表达式对象匹配转载 2017-05-21 11:17:04 · 393 阅读 · 0 评论 -
【iOS】类簇(class cluster)
类簇实际上是Foundation framework框架下的一种设计模式,它管理了一组隐藏在公共接口下的私有类。类簇的基本概念和实现思路为了举例说明类簇的结构体系和好处,我们先想想如何构建一个类的结构体系,然后用这个类指定一个对象来存储不同数据类型的变量(如:char,int,float,double)?因为不同数据类型的变量在使用的时候可以互相转换类型或用字符串标识,所以我们可以转载 2017-05-21 11:18:19 · 344 阅读 · 0 评论 -
iosiOS消息转发机制
在Objective-C中,使用对象进行方法调用是一个消息发送的过程(Objective-C采用“动态绑定机制”,所以所要调用的方法直到运行期才能确定)。 方法在调用时,系统会查看这个对象能否接收这个消息(查看这个类有没有这个方法,或者有没有实现这个方法。),如果不能并且只在不能的情况下,就会调用下面这几个方法,给你“补救”的机会,你可以先理解为几套防止程序crash的备选方案,转载 2017-05-21 11:20:17 · 280 阅读 · 0 评论 -
iOS runtime实战应用:Method Swizzling
前言在开始之前建议先阅读iOS runtime的基础理解篇:iOS内功篇:runtime现在IT届流行一个词叫“黑科技”,泛指一些让人“不明觉厉的”新技术或新产品,那在iOS开发中有什么高大上的“黑科技”呢?runtime中的Method Swizzling当仁不让,它是一把双刃剑,高手耍起来威力无限,菜鸟耍起来则可能伤及自身。对于这样的黑科技,我们当然要掌握并努力驾驭之。转载 2017-05-21 11:21:50 · 395 阅读 · 0 评论 -
揭开Socket编程的面纱
什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。转载 2017-05-21 11:23:21 · 362 阅读 · 0 评论 -
iOS-网络编程 文件上传和断点离线下载
一. iOS中发送HTTP请求的方案在iOS中,我们常用发送HTTP请求的方案有苹果原生(自带)NSURLConnection:用法简单,最古老最经典最直接的一种方案 (iOS 9.0弃用)NSURLSession:功能比NSURLConnection更加强大,苹果目前比较推荐使用这种技术第三方框架AFNetworking:简单易用,提供了基本够转载 2017-05-21 11:27:45 · 489 阅读 · 0 评论 -
避免滥用单例
单例是整个 Cocoa 中被广泛使用的核心设计模式之一。事实上,苹果开发者库把单例作为 "Cocoa 核心竞争力" 之一。作为一个iOS开发者,我们经常和单例打交道,比如 UIApplication 和 NSFileManager 等等。我们在开源项目、苹果示例代码和 StackOverflow 中见过了无数使用单例的例子。Xcode 甚至有一个默认的 "Dispatch Once" 代码片段转载 2017-05-21 11:04:25 · 266 阅读 · 0 评论 -
iOS网络请求浅谈
http请求:1 请求行:http请求方法、请求URI、http版本2 请求头:他向服务器提供额外的元数据,这些元数据可以描述客户端、进一步描述请求或是从服务器请求莫种类型的响应。每个请求可以提供一个或多个头。Host头是http1.1请求中唯一必须提供的头。它提供了客户端指定的原始主机名。3 请求体:请求体可以是任意的字节序列,通过一个空行与头分隔开来。请求体必须遵循客户端与服务器之原创 2017-05-21 11:00:05 · 367 阅读 · 0 评论 -
Foundation框架提供的一些基本对象的用法之字符串对象
创建一个字符串对象最简单的方法:使用一对双引号将一组字符串引起来,例如@“Programming is fun”一、不可变字符串对象(NSString)的常用方法 NSString *str1 = @"This is string A"; NSString *str2 = @"This is string B"; NSString *res;原创 2015-08-02 12:18:50 · 492 阅读 · 0 评论 -
view的触摸事件
/触摸开始时调用-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event{ NSLog(@"%s",__func__);// 打印方法}//触摸进行时调用-(void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)原创 2015-07-22 23:58:19 · 556 阅读 · 0 评论 -
预处理 宏的小总结
预定义 常量 不能赋值#define TRUE1#define FALSE0不用等号赋值,结尾也没有分号。大多数把预定义放在头文件中,方便在多个源文件中使用。一般用大写字母。或者加k预定义右边不必是合法的表达式,只要使用他的时候,结果表达式正确就行。例子:#define AND &&#define OR ||然后编写原创 2015-07-22 23:56:22 · 384 阅读 · 0 评论 -
在Xcode中git的简单使用
1.在创建项目的时候,勾选下面的creat git2、当改动自己的代码后(在没有commit的情况下),在左边的对应的文件会出现M3、此时如果想反悔修改后的样子可以:点击discard all changes,这样的话全部都返回改之前的样子了4、如果不想全部返回,只想返回其中一个或几个,可以在上图中选择Discard Changes in原创 2015-07-22 23:53:24 · 531 阅读 · 0 评论 -
深入研究Block捕获外部变量和__block实现原理
前言Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这个新功能“Blocks”。从那开始,Block就出现在iOS和Mac系统各个API中,并被大家广泛使用。一句话来形容Blocks,带有自动变量(局部变量)的匿名函数。Block在OC中的实现如下:struct Block_layout { void *isa;转载 2017-05-23 12:03:42 · 412 阅读 · 0 评论 -
iOS APNS远程推送步骤详析
1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请。若注册成功,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)原创 2017-05-21 10:41:33 · 420 阅读 · 0 评论 -
runtime之动态添加方法(动态决议,请求转发)
runtime中实例变量调用方法的步骤:1.在该实例变量的方法缓存列表中查找方法,如果找到就执行。2.如果没找到,会在该类结构的方法列表中查找该方法,如果找到就执行。3.如果没找到,会在该类的父类重复步骤1、2。4.如果知道根类没找到,就会报错:unrecognized selector sent to instance 0x1005046c0.解释:类结构:s原创 2017-05-21 10:44:43 · 420 阅读 · 0 评论 -
iOS中堆和栈的区别
objective-c 对象所占内存总是分配在“堆空间”,并且堆内存是由你释放的,即release。栈是由编译器管理自动释放的,在方法中(函数体)定义的变量通常在栈内。1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。注 堆和数据结构中的原创 2017-05-21 10:53:08 · 4015 阅读 · 0 评论 -
socket编程常用接口列表
API接口讲解int socket(int addressFamily, int type,int protocol)int close(int socketFileDescriptor)socket 创建并初始化 socket,返回该 socket 的文件描述符,如果描述符为 -1 表示创建失败。close 关闭 socket。转载 2017-05-21 10:55:45 · 1326 阅读 · 0 评论 -
聊聊NSURLSession
iOS 7 和 Mac OS X 10.9 Mavericks 中一个显著的变化就是对 Foundation URL 加载系统的彻底重构。现在已经有人在深入苹果的网络层基础架构的地方做研究了,所以我想是时候来分享一些对于我对于这些新的 API 的看法和心得了,新的 API 将如何影响我们编写程序,以及它们对于 API 设计理念的影响。NSURLConnection 作为转载 2017-05-21 11:02:23 · 282 阅读 · 0 评论 -
被误解的MVC和被神化的MVVM
被误解的 MVCMVC 的历史MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了这种转载 2017-05-21 11:29:15 · 657 阅读 · 0 评论