自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

helloworld的博客

生活就是一个不断学习的过程

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

转载 在浏览器中输入网址到网页展现全部过程

序最近接触到了整个网站的开发流程,所以就总结一下网站的运行机制,对网络应用如何工作有一个完整的层次化的认知。第一步首先,你得在浏览器里输入要网址: 例如百度或者facebook。第二步浏览器查找域名的IP地址(域名就是指输入的网址) 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到3

2016-08-14 23:05:13 16973 1

转载 git的sourcetree使用详细参考

http://blog.csdn.net/zcube/article/details/47841175

2017-11-16 23:35:50 283

原创 OC中的 __attribute__

概述GNU C 的一大特色就是attribute 机制。attribute 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。attribute 书写特征是:attribute 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的attribute 参数。attribute 语法格式为

2017-10-17 23:05:45 407

转载 iOS把图片缓存到本地的几种方法

概述把图片缓存到本地,在很多场景都会用到,如果只是存储文件信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存储图片到沙盒就没那么方便了。这里简单介绍两种保存图片到沙盒的方法。一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 //获取沙盒路径, NSString *path_sandox = NSHomeDirectory();

2017-10-07 20:42:43 12067 1

原创 ios扩展

扩展定义分类的一种形式(没有名字的分类)扩展的意义为已经有的类添加属性,和方法。(属性是私有的,方法也是私有的,本类才能使用)扩展的新建与分类一样通过文件得到的扩展只是一个文件.h.(可以扩展属性和方法),选项中有个扩展。 这正是扩展的不一样,它只会创建一个头文件,我们在里面可以添加成员变量、属性、方法等;如果要实现,只需要在它要扩展的类 .m文件去实现即可。 其实可以理

2017-10-03 00:50:46 491

原创 iOS xcode 9 注释快捷键

单行注释:在方法的地方按 Command+/标注的功能,快捷键是Command + Option + / 需要在方法名的上面(空白)的地方按 Command + Option + / 才管用

2017-10-02 01:06:50 10719

原创 UIScrollView的总结

概述UIScrollView可以展示比设备屏幕更大区域的内容,我们可以通过手指滑动来查看内容视图的每一部分内容,也可以通过手指捏合来对内容视图进行缩放操作,它是 TableView和 UITextView的父类。属性与方法 注: 本文中所说的”内容视图”在官方文档中称作”content view”,表示UIScrollView中可以用来展示内容的部分内容视图相关// 内容视图的大小,默认

2017-09-17 22:47:22 344

原创 iOS开发中addSubview的参数放在一个"({})"代码块中

iOS开发中addSubview的参数放在一个”({})”代码块中例子1[self.view addSubview:({ UIView *view = [[UIView alloc]initWithFrame:(CGRect){100,200,200,100}]; view.backgroundColor = [UIColor redColor]; view;})];例子2s

2017-08-07 12:34:52 470

原创 swift学习可选类型

可选类型的定义如果有值,就是这个值。 如果没值自动至为nil。可选类型使用具有安全性在编译阶段就检查 如果类型可选类型,无值,同时用这个值调用某个方法,就会报错。不会运行在报错。(第一要求解包,第二解包的值不为nil)NSString *stockCode = [self findStockCode:@"Facebook"]; // nil is returnedNSString *t

2017-05-22 18:06:12 390

原创 swift学习错误处理流程

swift之错误处理错误的表示抛出错误错误的处理指定清理操作错误的表示在 Swift 中,错误用符合Error协议的类型的值来表示。这个空协议表明该类型可以用于错误处理。wift 的枚举类型尤为适合构建一组相关的错误状态,枚举的关联值还可以提供错误状态的额外信息。例如,你可以这样表示在一个游戏中操作自动贩卖机时可能会出现的错误状态:enum VendingMachineError: Err

2017-05-18 23:16:27 425

原创 @property属性关键字详解

@property的常用属性关键字有nonatomic、atomic、readonly、writeonly、readwrite、assign,copy、strong、weak、看着挺多的,但是经常用的也就几个notomic: 默认关键字,也就是说如果什么都不写,默认就是这个。表示该属性是线程同步的。一般用不到,会影响性能。nonatomic: 非线程同步,基本都是用这个。保证属性不会被其他线程修改r

2017-05-16 18:38:56 2084

转载 http,socket,tcp/ip 网络传输与通讯知识总结

什么是TCP和UDP,以及二者区别是什么?TCP的全称为传输控制协议。这种协议可以提供面向连接的、可靠的、点到点的通信。 UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信使用TCP还是UDP,那要看你的程序注重哪一个方面,可靠(tcp)还是快速(udp)TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(

2016-11-04 00:39:26 672

转载 iOS -Block

iOS Block简介Block是对象,它封装了一段代码,这段代码可以在任何时候执行。block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:block是inline的,并且它对局部变量是只读的。实体形式Block的实际行为和Function很像,Block实体形式如下:^(传入参数列){行为主体};Block实体开头是“^”,接着是由小括

2016-10-13 03:06:10 427

原创 iOS 关于传值方式的那些事

iOS 关于传值方式的那些事 1.属性传值 -对方需要什么样类型的属性,就定义什么类型的,保持一致-从一个控制器传递到下一个控制器,不能回传-举例说明:如OneViewController,与SecondViewController,属性间进行传值,点击OneViewController ---View上按钮,跳转到SecondViewController,同时要传递一

2016-10-13 02:27:37 374

原创 oc的回调机制

开头缘由这两天面试(乐视)被问到了oc回调机制,只知道几个名词,例如block,代理,通知,当让讲一讲通知(NSNotificationCenter)的具体实现的时候瞬间懵逼了!面试结果可想而知,回来后自己又补了一下。什么叫回调?而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。oc中与回调有关的模式或者函数有哪些?代理(协议),respondsToSelecto

2016-08-06 02:04:45 4258

原创 initWithFrame;initWithCoder;awakeFromNib

这三个方法都与自定义控件有关,具体牵扯到什么时候调用,下面总结一下调用的注意事项。initwithFrame- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { //代码 } return self;}这个方法是在代码创建控件的时候使用,重

2016-07-29 11:03:44 437

转载 字符串反转

已处理最后字串的完整代码#include <stdio.h>void main(){ char str[]="you are a student"; printf(str); printf("\n"); char *p,*q; char temp; p=q=str; while(*q!='\0') { q++;

2016-07-11 14:29:15 473

原创 归并排序

1.归并排序的概念将待排序元素分成两个区间,用递归思想将两个区间进行排序。将 两个排好的有序区间的元素进行归并。2.归并排序的思想分治思想递归思想(区间的不断缩小)3.归并排序的的实现3.1先从简单的合并开始//将有序数组a[]和b[]合并到c[]中 void MemeryArray(int a[], int n, int b[], int m, int c[]) {

2016-06-01 16:58:51 228

原创 常用数据结构汇总

删除的方法⑴ 按序号删除 删除单链表中的第i个结点。 为了删除第i个结点ai,必须找到结点的存储地址。该存储地址是在其直接前趋结点ai-1的next域中,因此,必须首先找到ai-1的存储位置p,然后令p–>next指向ai的直接后继结点,即把ai从链上摘下。最后释放结点ai的空间,将其归还给“存储池”。 设单链表长度为n,则删去第i个结点仅当1≦i≦n时是合法的。则当i=

2016-05-22 15:22:46 848

转载 ios layout机制相关方法

(CGSize)sizeThatFits:(CGSize)size(void)sizeToFit ——————-(void)layoutSubviews(void)layoutIfNeeded(void)setNeedsLayout ——————–(void)setNeedsDisplay(void)drawRect layoutSubviews在以下情况下会被调用:1、init

2016-05-16 16:19:10 251

原创 桶排序

定义将数组元素的范围划分为几个子范围(桶子),再对每个桶子里所有元素进行排序,最后合并桶子。算法模型根据数组中元素的范围,来合理划分筒子个数将各个数组元素放入桶子里对每个桶子里元素进行排序合并桶子里的数据伪代码Bucket-Sort(A) let B[0..n-1] be a new array n = A.lenghtS for i = 0 to n - 1

2016-05-05 20:01:04 348

原创 c中数据的存储(内存)

内存的基本构成可编程内存在基本上分为这样的三大部分:静态存储区、堆区(动态存储区)和栈区。 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间(或者整个函数区间内)都存在。它主要存放静态数据(static)、全局数据(函数外)和常量(const)。栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放,但是分配的内存容量有限。

2016-04-24 18:00:00 590

原创 ios dealloc

在arc模式中,当对象的引用计数为0时,系统自动调用dealloc,不用自己写。 在ARC模式下要用delloc来解除代理关系。

2016-04-24 12:18:48 337

原创 各种常用链表总结

单链表逆序思想(方法一) 头插法迭代 ListNode* reverseList(ListNode* head) { ListNode *prev = NULL, *cur=head, *tmp; while(cur){ tmp = cur->next; cur->next = prev;//插入头部

2016-04-17 14:13:58 1560

原创 ios 之控制器的loadview

loadview作用自定义控制器的view。什么时候调用第一次使用控制器的view注意在这个方法中如果没有自定义view,就不能获取控制器的View。例如 - (void)loadView{ self.view.backgroudColor =[UIcolor redColor]; //会出现死循环。不停的调用self的get方法。 } 一旦重写了这个

2016-04-15 14:30:16 409

原创 计算机网络之TCP/IP协议(网络通讯协议)

tcp/ip参考模型,一共是五层,物理层、数据链路层、网络层、传输层、(会话层、表示层, 应用层)。物理层:建立 在物理通信介质的基础上,作为系统和通信介质的接口,用来实现数据链路实体间透明的比特 (bit) 流传输。只有该层为真实物理通信,其它各层为虚拟通信.数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输。网

2016-04-14 14:02:15 1879

原创 排序之冒泡排序

冒泡排序的定义是什么?越大的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序的原理是什么?比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较实现代码如下void bubble_

2016-04-14 11:02:21 388

原创 常用算法之(插入排序)

什么叫插入排序?有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序。实现插入的基本思想是什么?每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。实现步骤找到插入位置将插入位置上的元素向后移。将元素放入插入位置。代码实现void Insertsort (int a[], int n) /

2016-04-14 10:26:40 366

原创 oc 字典转模型的思路

总体思路是需要什么就做什么。首先控制器需要具有一个数组可变数组flags用于存放模型数据。加载字典。objct NSString *filepath = [[NSBundle mainBundle] pathForResource:@"XX.plist" ofType: nil]; NSArray *arr =[ NSArray arrayWithContentsOfFile:filepa

2016-04-11 17:11:55 534

原创 instancetype与id

为什么出现instancetype与id类型? 便于程序的扩展,如果把类型写死,就不具有扩展性。.instancetype 与id 是类方法的返回的对象的类型。其中instancetype: 自动识别当前是哪个类(有可能是子类)在调用, 就会变成对应类的对象。假如b类继承与a类,b类调用了a类的类方法,用的是id类型,那么b类返回的将是父类的类型,程序出错,id类型不能用点语法,而inst

2016-04-11 16:12:04 300

原创 动态分配内存malloc函数

malloc 函数位于 stdlib.h 头文件中。(memory alloc)函数原型为void *malloc(size_t size);由原型可以看出,malloc函数返回一个指向任意类型的指针。也就说malloc函数申请的空间可以存放任意类型的数据。其中参数为分配空间的字节数。 最好进行强制类型转换。可以避过编译器的检查。例如 int *p;p = (int *)malloc(si

2016-04-08 14:40:39 923

原创 init方法的重构

其一* 一定要调回父类的init 方法: 初始化父类的声明的成员变量以及属性。self = [super init];如果对象初始化成功,才有必要进行接下来的初始化if(self != nil ){ code;}return self;父类中有init方法。

2016-04-04 13:16:31 377

原创 ios基础之initialze与load

load* 当程序启动时会加载一次项目中的所有类,类加载完毕后,会调用+load * 先加载父类的load .然后加载子类的load。initialize** 当第一次使用这个类的时候,就会调用一次+initialize。 同样先调用父类的initialize。

2016-04-04 12:27:02 785

原创 oc之递归遍历文件的行数

1.参数是文件(夹)路径:path 2.跟路径有关的类是NSfileManager,这个类的对象是单例对象, 3.首先要创建这个对象 。(NSfileManager *mgr =[ NSfileManager defaultManager]) 然后运用对象的方法对路径进行判断。 4。运用到递归的算法。 int codeLineConut(NSString *path){NSFileMan

2016-03-25 19:01:01 864

原创 oc 内存管理 -堆栈操作

内存空间分为堆和栈 对象的内存空间放在堆里,(动态产生)不可能随便回收。 局部变量放在栈里,代码块运行完就回收了。 每一个oc对象都有一个引用计数器(4个字节),放在对象里。表示引用的次数。 引用计数器的操作 1.当使用alloc , new 或者 copy 创建一个对象时,新对象的引用计数器默认是1. 2. 当一个对象的引用计数器为0时,对象占用的内存就会被系统

2016-03-20 20:51:44 1125

原创 linux 常用命令学习

cd 命令cd /root/ducment // 就是切换到/root/ducment目录下。"/"代表用户主目录。cd ./ducment // 切换到当前目录下的dument.cd ../ducment // 切换上层目录下ducment.cd ../ // 切换到上层目录。ls 命令ls -1 // 列出当前目录下的所有文件。并且详细文件属性以及文件

2016-03-19 11:36:08 279

原创 objectc -c 之 property 与synthesize小记 (2)

#import <Fountion/Fountion.h>@interface Person :NSobject //.h 文件里{ int _age; int _heigh;} // 成员变量@property age; // 编译器自动生成 - (void)setAge:(int)age; // - (v

2016-03-18 19:07:02 263

原创 object -c 小记成员变量的作用域(1)

#import <Foundtion/Foundtion.h> @interface Person :NSobject { int _no;// 没有声明就是@protected. @public // 在任何地方都能直接访问类的成员变量 int _age; @private // 只能在当前类的对象方法中直接访问。 int _he

2016-03-18 18:18:36 194

原创 c语言之strcat函数Strcpy函数

因为面试的时候经常考到,所以就自己总结了一下。 注意点为前一个字符串的空间要够后边字符串的存储。 strcat原型为strcat(char *p1,char *p2)或者strcat(char a[],char b[]) 作用:将p2复制到p1的末尾。或者说将b数组里的元素复制到a数组元素的末尾。char *strcat(char *p1,const char *p2 ){

2016-03-16 22:53:43 1000

原创 算法之水仙花

所谓水仙花算法就是找到一个三位数这个数大小等于各个位上数的立方和。 分析:这个数在100-999之间,用for循环与条件控制if来实现。个个位置上的数用取余,求整来的到。#include<stdio.h>int main(){ for(int i = 100;i <= 999;i++)i{ int a = i%10; int b = i/10%10;

2016-03-15 08:41:50 493

空空如也

空空如也

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

TA关注的人

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