自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

等待化茧成蝶的专栏

纯粹的iOS爱好者,只是整理总结一些经验。

  • 博客(20)
  • 收藏
  • 关注

转载 TCP与UDP的区别以及TCP的三次握手过程剖析

首先分别介绍一下TCP与UDP1.TCP:TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来(就是传说中的三次握手),其中的过程非常复杂,我们这里只做简单、形象的介绍,下面再做解释,现在只要理解这个过程即可。我们来看看这三次对话的简单过程:

2015-03-31 22:54:21 2149

原创 OSI网络七层协议以及每层的作用

OSI 七层模型称为开放式系统互联参考模型 OSI 七层模型是一种框架性的设计方法,是一个定义的非常好的协议规范。OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能使就是帮助不同类型的主机实现数据传输。OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1物理层 其中高层,即7、6、5

2015-03-31 21:21:17 5780

原创 #import与#include以及@class的区别与联系

#include        区分 #include <x.h>与#include "x.h"的作用        #include <x.h>:它用于对系统自带的头文件的引用,编译器会在系统文件目录下去查找该文件.        #include "x.h":用户自定义的文件用双引号引用,编译器首先会在用户目录下查找,然后到安装目录中查找,最后在系统文件中查找。    ...

2015-03-28 01:45:45 508

原创 便利初始化函数与便利构造器

有时候我们在用到自定义对象时,会先实例化一个对象之后才会对属性进行赋值操作,但是这种做法如果对象的属性太多,复制就显得非常的麻烦,代码也会冗余,这是我们就会用到便利初始化函数和便利构造器了。代码演示:首先建立一个MainViewController(UIViewController)作为根视图和一个学生类Student(NSObject);1.在Student.h中添加两个属性name和age,代...

2015-03-20 16:55:19 771 1

原创 如何检测ScrollView和TableView是处在开始拖动,上移,下移,减速或者停止等状态

这里主要是展现ScrollView的一些代理方法,因为TableView是继承自ScrollView,所以ScrollView的代理方法对于TableView也同样适用;主要作用是,例如我们在视图上有一些控件,需要根据TableView或者ScrollView的状态来选择隐藏或者出现1.//scrollView滚动时,就调用该方法。任何offset值改变都调用该方法。即滚动过程中,调用多次 - ...

2015-03-19 17:37:43 5852 1

原创 开闭原则与里氏替换原则

1.开闭原则是面向对象设计的基本原则之一,是“可复用设计”的基础,它的主要原则是:对扩展开放,对修改关闭;意思就是我们改变一个软件时。应该通过扩展方式来改变软件,而不是修改原有的代码。2.里氏替换原则里氏替换原则是说,任何基类可以出现的地方,子类一定可以出现(只有当衍生类可以替换基类,软件单位的功能不受到影响,基类才能真正被复用,衍生类也能够在基类的基础上增加新的行为)。下面我们通过建一个项目,简...

2015-03-19 14:59:32 2904 1

原创 属性的特性assign,retain,copy,strong,weak,nonatomic,atomic,readonly,readwrite的区别与介绍

在定义属性是通常会写一些关键字来确定属性的特性,这些关键字基本上是针对属性的set方法,下面我们做一下简单介绍:1.assign:此标记说明设置器直接进行赋值,这也是默认值且setter方法直接将传入参数赋值给实例变量,不涉及引用计数的变化,也没有引用计数可以供管理;主要用于非指针变量(也可以修饰指针变量,但是平时都不这么用),即用于基础数据类型(例如NSInteger)和C的数据类型(int, ...

2015-03-19 09:30:06 1346

原创 iOS代理传值(委托传值)

之前介绍过代码块反向传值,现在再整理一个常用的代理传值(委托传值);这样就不得不提到iOS中的协议,代理传值是在协议的基础上实现的;所谓的协议,简单地说就是一个声明一些方法的头文件,方法不需要自己实现,需要遵循协议的类来实现;协议可以寄生在一个其它类的头文件里面也可以自己单独拥有一个头文件,这里我们寄生在其它类的头文件里面,这样实现代理传值也比较的方便直观。直接通过代码来介绍了:我们先来建两个类,...

2015-03-17 15:17:03 550

原创 TableView的cell上面加button,实现点击button可以获取到cell的行号或者indexPath

在很多时候,我们会用到在TableView的cell上面加button,然后在button触发响应时需要获取所点击的button所在的cell的行标,以此来处理一些事件;这里就写一下最近使用的一个很简单的方法:首先建立一个TableView控件- (void)viewDidLoad{ [super viewDidLoad]; self.mytableView = [[UITab...

2015-03-13 17:19:04 5234 1

原创 有关TableView的一些小杂碎(持续更新)

1.隐藏TableView的分割线myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;2.系统默认的cell点击后的颜色设置cell.selectionStyle=UITableViewCellSelectionStyleNone;  //无色cell.selectionStyle=UITableViewCellSelect...

2015-03-13 12:38:32 613

原创 简单的MD5加密字符串

首先在类中导入框架#import <CommonCrypto/CommonDigest.h>之后在类中加入以下方法,调用即可;方法一:-(NSString *)MD5zhuanMa:(NSString *)string{ const char *original_str = [string UTF8String]; unsigned char result[CC_MD...

2015-03-12 17:58:48 697

原创 实现一个比较全面的单例

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。单例内部的属性一旦赋值,只要程序不关,在整个项目的任何地方再次实例,内部的属性值不会变,使用起来非常方便;下面我们来写一个稍微全面一点的单例首...

2015-03-12 16:55:34 606 1

原创 代码块反向传值以及反向处理UI

我们在实现功能的时候,常常会遇到从一个页面A跳转到页面B,然后在页面B进行一些交互以及处理等,之后可能会把处理得到的一些数据反传给A使用,并且可以通过在页面B的一些操作把页面A的UI也进行调整,这时候就可以用到代理(即委托)或者代码块了。因为上一篇对代码块做了简单的介绍,所以这次就用代码块来实现这一功能:首先,我们先建造两个继承自UIViewController的类MainViewCo...

2015-03-12 14:12:17 714

原创 iOS中Block的简单介绍

Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其它的函数或者Block。第一部分:Block基本的声明与实现Block声明形式如下:返回值类型(^Block名)(参数列);返回值类型(比如void,int等),Block名即自己为这个Block取得名字,参数列(比如 int a,...

2015-03-12 11:54:41 507

原创 UITextField实现模糊查询

有时候,我们可能会需要用到UITextField来自己构造一些类似于搜索框的控件来进行搜索;假如我们用UITextField构造了一个搜索框,那么要实现简单的模糊查询,该如何去做呢?一般我们会想到这个方法:- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replaceme...

2015-03-11 16:06:01 2220

原创 UISearchBar和UITableView实现简单的模糊查询

在UISearchBar的代理方法中有两个方法可以比较好的实现:- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;//方法一- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range r...

2015-03-11 15:45:53 2473

原创 iOS截取屏幕(屏幕截图)

-(UIImage*)printscreen{ //以下是实现截屏功能 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];...

2015-03-11 14:34:07 1123

原创 iOS代码实现两张图片合成一个

注意:如果上面的一张尺寸大于底下的一张,最后截取出来的图片就看不见下面一张的内容;代码如下:- (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2{ //将底部的一张的大小作为所截取的合成图的尺寸 UIGraphicsBeginImageContext(image2.size); // ...

2015-03-11 11:47:46 2625

原创 如何Pop回到指定的页面

在用到UINavigationController时,当push跳转好几层页面之后,执行完该页面额操作我们可能不想跳转回上一页或者根视图,而是选择跳回指定的某一页,如下代码即可实现:1.首先将要跳回的页面类的头文件导入该类2.执行以下语句NSArray *temArray = self.navigationController.viewControllers; for(UIVie...

2015-03-11 10:35:49 821

原创 非ARC的文件在ARC项目中使用

我们在开发的过程中,有时候会用到一些第三方的简单的功能类,这些第三方的代码开发时有可能用的是非ARC,而我们的项目用的是ARC,没关系,我们也可以直接导入他们开发的功能类配置一下直接使用,非常简单:1.首先将第三方的功能类导入我们的项目中2.Target-->Targets--> Build Phases--->Complie Sources中找到导入的非ARC功能类的.m文件3...

2015-03-04 09:44:54 651

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除