自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 MAC环境如何将本地代码上传到GitHub上

该博客中使用客户端GitHub Desktop上传代码,客户端logo如图所示:             在上传代码之前我们需要做的准备是:      1:下载客户端GitHub Desktop,下载链接是:https://desktop.github.com,下载之后软件打开后的效果如图示:           2:注册一个GitHub的账号,网址是:https://gith

2017-07-13 17:42:24 888

原创 iOS内存管理之NSAutoreleasePool

1:NSAutoreleasePool实际上是个对象引用计数自动处理器。NSAutoreleasePool可以同时有多个,它的组织是个栈,总是存在一个栈顶pool,也就是当前pool,每创建一个pool,就往栈里压一个,改变当前pool为新建的pool,然后,每次给pool发送drain消息,就弹出栈顶的pool,改当前pool为栈里的下一个 pool。2:NSAutoReleaseP

2016-09-16 16:25:10 448

原创 block

block:带有自动变量的匿名函数匿名函数:没有名字的函数,在OC中的block可以用指针来直接调用一个函数自动变量在block中的具体表现就是截获自动变量1:block的定义1:定义block变量 返回值类型(^block变量名)(参数类型1,参数类型2 ....) 2:给block变量赋值 block变量名 = ^(参数类型1, 参数类型2...) { };

2016-09-03 11:35:51 421

原创 ARC 下引用计数的打印

在管理内存的时候经常需要打印对象的引用计数,来检测对象是否发生内存泄漏的情况

2016-09-03 11:21:36 3706

原创 ARC 下代理产生内存泄漏的情况

在ARC下依然会发生内存泄漏的情况,比如在使用代理的时候,A有个属性参照B,B有个属性参照A,如果将各自的对象的属性设为strong属性,因为两个对象都无法释放,就会发生内存泄漏的现象; 比如Person类让Agent对象去查看每张票的价钱并统计还剩多少张票,而Agent 让Person对象去统计有多少人去看电影,这个时候就会发生内存泄漏的现象,代码如下:Person.h#import

2016-09-03 10:45:25 392

原创 协议的应用—代理设计模式

Person.h#import #import "Agent.h"@interface Person : NSObject//拥有一个代理属性@property(nonatomic,retain)Agent *delegate;-(void)buyTicket;@endPerson.m#import "Person.h"@implementation Person

2016-08-25 14:21:18 312

原创 iOS protocol 协议

vvvv

2016-08-25 14:20:39 295

原创 分类,扩展和继承的区别

1:分类和扩展的区别      分类:声明的时候使用格式中括号必须要有分类名称,创建完成后有两个文件夹(Person+action.h Person+action.m文件)@interface 类名 (分类名称)/* 方法声明*/@end@implementation 类名(分类名称)/* 方法实现*/@end       扩展:声明的时候使用格式中括号没有东西,

2016-08-25 14:19:44 1564

原创 类扩展:Extension

类扩展:Extension 也称为匿名分类  1:作用:1:能为某个类附加额外的属性,成员变量,方法声明                    2:定义一些私有方法,可以隐藏不对外公布的方法,多用于隐藏一些中间步骤的方法  2:创建:NewFile-Objective-C-Extention  3:使用格式:创建成功后只有Person_action.h一个文件(cate

2016-08-25 14:18:50 326

原创 分类:category

分类:category ://声明@interface 类名@end//实现@implemention 类名(分类名称)@end

2016-08-25 14:17:33 306

原创 打包静态库.a文件

在开发iOS的工作中会开发一些.a 的静态库文件(.a 静态库文件是编译好的的二进制文件)或者打包一下别人的第三方类库包装成自己的.a 文件。就需要打包.a 文件,下面介绍如何打包静态库文件:1:建立工程 选择 Cocoa Touch Static Library ,在Product里面建立的.a 文件显示为红色2:将你所需要打包的文件比如AFNetworking

2016-08-19 17:47:37 539

转载 预处理命令: #if ,#ifdef ,#ifndef

Q : 在项目的 .h 文件中,#ifndef XXX_h#define XXX_h//程序段1#endif  /* XXX_h */的作用?A : 如果 XXX.h 不存在,就引入 XXX.h ,否则不用引入. 是为了防止该文件被重复引用.#什么是重复引用:其实“被重复引用”是指一个头文件在同一个.m文件

2016-08-08 15:40:05 483

原创 iOS中.pch文件的使用

以前在写代码的时候在屏幕适配和系统适配的时候都是建立一个头文件然后当某个类需要使用的时候#import 进去,       今天看公司的项目,发现他们使用的是一个.pch文件,既然两种方式都可以实现,那公司项目中为什么要使用.pch文件呢?原因是当我们的工程项目特别大的时候,我们需要把大量的头文件和宏定义导入到每一个类中,这样就会导致编译时间过长,系统耗费的资源过大。

2016-08-08 15:27:00 357

原创 iOS 9 下写WebView的错误

今天同学问一个问题,iphone Safari中播放网页视频的时候只能是全屏播放,如何使其禁止全屏播放,参考的答案是:        1:前端将video 标签加入属性webkit-playsinline ,如:;         2:Objective-C 中添加配置:_webView.allowslnlineMediaPlayback = YES;        这样web视频就可

2016-08-05 17:14:06 740

原创 构造方法

1:使用构造方法的目的:为了让对象方法一构建出来,成员变量就拥有固定的值2:先调用父类的构造方法再进行子类子类内部成员变量的初始化#import@interface Person:NSObject@property int age;@end@implementation Person//如果想让person对象的age的初始值为10-(id)init{ //初始化对象

2016-06-09 16:22:52 414

原创 description语法及点语法

1:-(description)对象方法 使用NSLog和%@输出某个对象时。会调用对象的description 方法,并得到返回值进行输出  2:使用 %@打印输出对象时,默认打印输出 ,NSLog 函数一旦发现用%@输出某个OC对象时,就会调用对象的description方法(默认为NSString类型),并将     description方法返回的Oc字符串返回到屏幕上,OC中的des

2016-06-09 11:43:44 735

原创 多态

/* 多态:多种形态(建立在继承的基础之上) 多态的体现:父类指针指向子类,每个OC对象都有多态性 多态的局限性:父类指针不能直接调用子类特有的方法,如果要正常调用子类特有的方法 需要将父类指针强制转换为子类指针 */#import@interface Zoombie:NSObject-(void)walk;@end@implementation

2016-06-05 14:48:12 271

原创 继承

当一段代码中包含了大量重复的内容,代码看起来很没有效率,编程时出现大量的重复代码意味着代码架构是一个失败的架构,因为你要维护两倍的代码,修改代码时,必须修改两处,这样很容易出错,如果你忘记更改其中一处代码,一些奇怪的bug就会出现,为了解决这个问题,提出了继承的概念;       继承的语法格式:@interface Circle:NSObject     /* 继承的好处:抽取了公共代

2016-06-05 10:32:11 245

原创 self 关键字的使用

根据上一篇的内容,当我们访问成员变量的时候,使用的是对象调用set的方法实现,但是有时候代码会很繁琐,所以为了解决这一问题,采用了self关键字访问;#import@interface Car : NSObject{ int _wheels;}-(void)setWheels:(int)wheels;-(int)wheels;-(void)run;@end@imp

2016-06-02 16:06:01 870

原创 set方法,get方法和类方法的使用

1:使用封装的好处:        过滤掉不合理的值        屏蔽内部的赋值过程        让外界关注内部的细节   2:set方法,get方法      之前访问成员变量的时候,我们采用的都是@public设置属性,但是使用@public 不安全,成员变量可以任意被赋值,无法保证数据的安全性,所以我们使用set和get方法来管理成员变量;#import @i

2016-06-02 10:45:57 1494

原创 OC 中多参数方法声明

#import @interface Calculator : NSObject{ @public int number;}-(double)pi; //返回 PI 的值//一个方法名对应一个冒号,冒号也是方法的一部分-(double)pingfang:(double)number; //实现计算器的平方运算-(double)SumOfnum:(double)n

2016-05-31 11:59:57 4747

原创 OC 中类的声明和定义

/* 1;声明类: @interface 和 @end 之间 *类名 *继承NSOBject * 属性 *方法(只需声明,不需实现) 2:实现:@implementation 和 @end 之间 * 实现@interface声明的方法 */#import @interface Dog:NSObject{ @public int

2016-05-31 11:06:12 545

原创 OC对象与函数

下面将讲解如何将OC语言与C语言混合编程;#import @implementation Bird :NSObject{ @public int height;}-(void)fly{ NSLog(@"鸟儿飞了%i高!",height);}@end//C语言函数使用的是传参的方式void test(Bird *myb){ myb->he

2016-05-26 12:53:40 314

原创 定义OC中的类

//为了能使用NSObject#import // 设计一个车类//@implementation 和 @end 之间定义类 {}中间只能写属性,不能写方法,其为类的成员变量//NSObject:让Car这个类具备创建对象的能力@implementation Car:NSObject{ //@public:让对象的属性可以被外面的指针访问。public后面的成员变量都为公有,

2016-05-26 11:26:39 287

原创 编写OC程序

1:OC程序的开发过程:.m源程序 —— .o目标文件——.out可执行文件    2:编写OC程序First.m 文件    #import void test(){ NSLog(@"hello world");}Second.m 文件#import "First.h"int main(){ test(); return 0;}注意:

2016-05-26 10:26:35 713

原创 2016小米实习生面试心得

今天参加了小米的电话面试,在面试之前小米HR会和你预定面试时间,(记得邮件确认面试时间),这次面试面了将近一个小时,从下午四点零五到五点,一个小时的时间真的感觉是轮番轰炸,两个面试官同时面你(人性的是两个面试官不会问你两个完全不同的问题,他会在第一个面试官提问的问题的基础上继续深究,或者对你没回答上来的地方做指引),面试之前看过小米面经,说小米的面试官来自不同的公司,有谷歌的,有腾讯的,对于项目会

2016-05-15 11:27:20 4914 1

原创 2016西安腾讯实习生面试心得

对于腾讯的面试,我只想说曾经面试官给了我一次机会,我却没有珍惜,直到我失去它,我才知道什么叫做书到用时方知少的痛苦,如果上天能再给我一次机会,我真的会好好把握的。面试官刚开始问我的问题都是关于项目的问题,我也都答上来了,后来让我手写一段代码;记录1的个数,这个题我很清楚,因为它是剑指offer上的题目,所以当时听到这个题目的时候,我的心里别提有多高兴了,我以三下五初二的功夫将之写了出来,赶快将

2016-04-17 16:57:39 4760

转载 前缀 中缀 后缀表达式

最近笔试的过程中老是有中缀转换为前缀,或是中缀转换为后缀的问题,数据结构学了这么久真的是记不清了,今天重新复习了一下,借此机会总结一下:       中缀:我们正常理解的表达式的书写方式;      前缀:操作符全部位于操作数的前面,操作数的顺序为从右到左依次压栈的顺序,操作符为从左到右依次压栈的顺序;      后缀:不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出

2016-04-12 21:34:47 583

转载 iOS面试总结

序言目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡。矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力!OC的理解与特性OC作为一门面向对象的语言,自然具有面向对象的语言特

2016-04-05 17:32:23 1454

转载 TableView性能优化

TableView相信只要是做iOS开发的就不会陌生,目前大多数iOS的app都是采用TabBar+NavigationBar+TableViewController这一主流框架,既然用的这么频繁,肯定就会在开发过程中碰到一些问题--比如屏幕掉帧、卡顿等现象。这些现象大幅度的降低了用户的性能体验,并提高了crash的频率。因此如何能优化好tableView就非常考验程序猿们的功底了。当

2016-03-18 15:01:28 1533

原创 iOS面试总结

1:设计模式:并不是一种新技术,而是一种编码经验,使用比如Java中的接口,iPhone中的协议,继承关系等基本手段,用比较成熟的逻辑去处理某一种类型的事情,总结成为一种固定的模式MVC设计模式:模型-数据的存储和处理  视图--前台呈现给用户的界面显示 控制器---业务逻辑的控制  代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用单例模式

2016-03-13 15:56:55 416

原创 应聘时给HR最漂亮的回答

身为一个IT行业的学者,当面试官问我平时都喜欢干什么的时候,我的回答居然只有户外活动(真的是被自己蠢哭了),可想而知面试官对我的态度(你愿意到我们公司的其他部门么?)现搜集一些面试的技巧,分享给自己,也分享给那些即将应聘的同学们;1请你自我介绍一下自己好吗?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知

2016-03-13 13:32:49 481

转载 我们需要什么?——IT公司面试官经验谈

原文链接地址:IT行业发展如日中天,每个程序员都想进入好的公司以实现自己的价值。那么,IT公司的面试官们又是如何选择应试者的呢?乔布小编专门整理出了这篇IT公司面试官谈他是如何对应试者进行面试,以及是如何筛选优秀应试者的文章,也希望对各位IT程序员进入优秀IT公司有所帮助。雇佣合适的人对于IT公司来说是非常关键的。在IT领域,有三类人可以挑选。一个极端, 是那些混进来的, 甚至缺乏

2016-03-12 17:55:00 880

原创 八大算法之冒泡排序

算法步骤:1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。2)对每一对相邻元素重复第一步,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3)针对所有的元素重复以上的步骤,除了最后一个。4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡排序示例:代码示例:void

2016-03-10 16:33:44 372

原创 最近实习求职过程中同学们被问到的问题汇总

虽然到目前为止,没有一个正式的面试电话(心里着实着急啊),但是着急也没有用啊,能做的唯有时刻准备着,准备着电话那头面试官温柔的声音,准备着面试官大人可能要问的问题,准备着HTTP协议、剑指offer、八大排序算法,,,所以还是好好学习,天天向上吧下面是实验室大神被问到的一些问题,做好准备,以免被问到相同的问题:        1:全局静态变量类和单例模式的区别:        相同点:

2016-03-06 15:09:40 685

转载 HTTP协议详解

转载地址:http://blog.csdn.net/gueter/article/details/1524447HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next

2016-03-02 22:06:41 500 1

转载 iOS 面试题汇总

1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。2. #impo

2016-03-02 21:54:58 725

原创 八大算法总结之稳定性的比较及算法的选择

各种算法的稳定性、时间复杂度、空间间复杂度的分析:1.稳定:冒泡排序、直接插入排序、二分插入排序、归并排序、基数排序和桶排序。2.不稳定:直接选择排序、快速排序、希尔排序、堆排序。3.O(n^2):直接插入排序、简单选择排序、冒泡排序。4.O(nlogn):快速排序、归并排序、希尔排序、堆排序。排序算法的选择:1.数据规模较小

2016-03-02 21:32:53 3284

原创 自定义UITextField

在创建UITextField 代码的时候,有时我们需要自定义其风格,比如在文本框中加入图标,改变文本字段的行为,可以通过重写的方法来将其实现,这些方法都会返回一个CGRect结构,该结构制定了文本字段每个部件的边界范围,可以修改placeHolder颜色,字体等;#import "ViewController.h"@interface ViewController ()

2015-07-16 15:22:52 545

转载 object-c里self与super的区别

self与super的区别(转)在objc中的类实现中经常看到这两个关键字”self”和”super”,以以前oop语言的经验,拿c++为例,self相当于this,super相当于调用父类的方法,这么看起来是很容易理解的。但是它们真正是如何调用的呢? 你知道吗?以下面的代码为例: @interface Person:NSObject {NSString*  name;}

2015-06-16 11:21:17 378

空空如也

空空如也

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

TA关注的人

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