- 博客(39)
- 收藏
- 关注
原创 iOS设计模式之观察者模式
一、观察者模式观察者模式定义了对象间的一种一对多的依赖关系,以便对象状态发生变化时,依赖于它的对象都能得到通知并自动刷新。二、OC当中的观察者模式1、通知中心(NSNotificationCenter同步模式,一对多的)1>基本概念a.每个应用程序都会有一个通知中心的单例,负责不同对象之间的通信。b.实现原理通知中心只是监听“字符串”,在每次
2014-11-23 18:53:01 456 1
原创 iOS网络编程之NSURLConnection
一、网络访问流程1、指定资源路径NSURL1>URL是依赖于服务器上的资源的,不能随意修改2>就是一个能够指定服务器资源的路径字符串2、封装连接请求NSURLRequest/NSMutableRequest1>GET请求URL组成url字符串+?+参数a.用NSRequest封装请求,就是创建请求对象NSString *urlString = [NSString s
2014-11-23 10:04:07 392
原创 Quartz2D之贝塞尔涂鸦板(UIBezierPath)
#import "DHPalette.h"@interface DHPalette ()/** 记录所有路径的数组 */@property (nonatomic,strong) NSMutableArray *paths;@end@implementation DHPalette
2014-11-23 09:26:32 564
原创 iOS多线程之NSOperation
1、NSOperation是对GCD的封装,在使用NSOperation的处理多线程的时候,程序员只需要将任务添加进队列即可,不用关心线程,更不用管线程状态。1>常用方法-start -main //自定义线程-cancel- cancelAllOperations;-addDependency:
2014-11-23 09:17:08 599
原创 iOS多线程之GCD
GCD1、概念1>GCD是Grand Central Dispatch可以为“牛逼的中枢调度器”,是纯C语言的,提供了大量的功能强大的函数。GCD是苹果公司为多核的并行运算提出的解决方案,能够自动利用更多的CPU内核,而且GCD不需要程序员编写任何管理代码,只需告诉GCD系统想要执行什么任务。2>基本说明GCD是 C 语言的框架,所有GCD的函数,都是以dispatch开头的d
2014-11-23 09:10:46 457
原创 iOS多线程之NSThread
NSThread1、概念1>一个NSThread对象就代表一条线程2>创建和启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];[thread start];+ (NSThread *)mainThread;
2014-11-23 09:06:46 420
原创 iOS沙盒目录解析
1、沙盒目录1>Documents:只能保存应用程序生成的相关数据,不能保存网络下载数据,否则会拒绝上架2>Cache:内容会持久化保存,可以保存需要再次使用的文件,由于是持久化的数据保存,所以如果在cache保存了文件,就要提供“清除缓存”的功能3>Tmp:保存临时文件,重启程序或者内存吃紧会自动清除4>Preferences:用户偏好设置的专属目录,使用[NSUserDefau
2014-11-23 09:03:33 408
原创 JSON解析(序列化和反序列化)
一、序列化和反序列化1、序列化序列将本地数据转化成二进制数据2、反序列化反序列化就是将拿到的二进制数据转换成本地可用的数据(OC的字典,数组等等)3、常见的解决序列化和反序列化的第三方框架JSONKit,SBJson,TouchJSON,但是性能从做到右越来越差4、苹果提供的序列化工具(性能最好)[NSSerialization JSONObjectWithData:options:error:]
2014-11-23 09:00:14 783 1
原创 OC单例模式详解
一、单例模式的实现1、ARC单例1>提供一个全局静态变量,保存单例的实例,因为放在静态区,我们不需要关心释放问题,等待程序结束的时候,系统将实例与其他的静态去变量一同销毁static id instance;2>提供全局访问的方法通常以shared+类名,单例获取方法保证对象只被分配一次内存空间(实例化一次)+ (instancetype)shared类名{static d
2014-11-23 08:56:28 696
原创 OC自定义对象的copy
一、概念1、copy的目的在于修改源对象或者副本的时候互不影响2、只有在不可变对象copy的时候才是浅拷贝,其余都是深拷贝二、自定义对象的copy(必须首先遵守NSCopying协议)1、自定义对象copy的必要步骤1>遵守NSCopying协议2>重写实现copyWithZone:方法2、ARC的copy实现copyWithZone:(NSZone *)zone
2014-11-23 08:37:46 1200
原创 Block详解
1、Block1>block的标准定义a.block是一个变量,是一个事先准备好的代码块,在需要的时候调用,也就是说block变量是一个用于保存行为的变量,有助于建模b.标准定义返回值 (^block变量名)(形参数列表) = 返回值^(形参列表){//block主体实现};=左边和inlineBlock的左边一样2>block在使用外部变量的时候,会在堆区copy
2014-11-23 07:43:10 617
原创 核心动画
核心动画1、CALayer(iOS的所有view都是画出来的)1>UIView之所以有显示功能,是因为它内部有一个图层,这个默认的layer就是view的RootLayer当UIView需要显示到屏幕上时,就会调用drawRect方法在自己图层上进行绘图,绘图完毕后,系统会将图层拷贝到屏幕上,于是完成UIView的显示2>给layer添加图片和背景色a.修改QuartzCore
2014-11-04 20:57:44 558
原创 黑马程序员-----随堂笔记之UI基础(二)
tableView相关1、TableView的使用流程1>将数据转换成模型2>在控制器当中组合一个数据属性,重写getter方法,将字典转成模型(通常是一个frame)3>封装cell,组合一个模型(通常是一个frame)属性到cell封装,重写setter方法,在其中设置frame和分发数据4>在实现数据源返回UITableViewCell的方法中,用封装好的cell类创建c
2014-10-24 15:55:28 635
原创 黑马程序员-----MVC和KVC
1、数据模型1>数据模型简称模型,是一个专门用于存放数据的OC对象(当然也可以是其他语言环境的对象) ,用模型来存放数据回更加专业;2>模型是一个继承子NSObject的普通OC,模型是有字典转过来的,模型类的属性命名是与字典的key相同的3>模型一般提供两个构造方法一个-方法和一个+方法,用于快速构造构造一个模型(类)4>模型的使用使对字典的访问变成对对象属性的访问,着就避免了再
2014-10-18 22:15:11 566
原创 黑马程序员-----面霸题目
1、@property (nonatomic, retian) NSArray *Cars;的setter方法对于setter方法,一定不能忘记jia
2014-10-18 20:43:14 481
原创 黑马程序员-----Foundation框架续(二)
Foundation常方法总结1>NSString//字符串创建stringWithUTF8String:"c语言字符串" //C语言字符初始化OC字符串stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding) error:(NSError**)//读取path所在文件内容,转成OC字符串,并指定
2014-08-18 10:17:44 445
原创 黑马程序员-----Foundation框架续(一)
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------一些特殊类1、NSStringEncoding编码,一般使用NSUTF8StringEncoding,基本实现国际化,起码识别中文。2、NSError错误,通常使用NSError**,nil要记录错误,通常使用如下定义e
2014-08-15 17:59:08 482
原创 黑马程序员-----高质量C语言编程
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------Foundation框架一、结构体1、NSRange用于范围描述1>NSRange(location, length)2>赋值方式①NSMakeRange(NSUInteger loc, NSUInteger len);//
2014-08-02 15:46:19 644
原创 黑马程序员-----Foundation框架
Foundation框架一、结构体1、NSRange用于范围描述1>NSRange(location, length)2>赋值方式①NSMakeRange(NSUInteger loc, NSUInteger len);//必须掌握②NSRange(2,4);③NSRange(.location = 2, .length = 4);3>常用的Range相关的方法
2014-07-29 06:51:46 445
原创 黑马程序员-----常用语法
一、SELSEL其实就是对方法的一种包装,将方法包装成一个SEL类型的数据,去找对应的方法地址,找到方法地址就调用对应的方法。其实消息就是SEL。1>一种数据类型,代表一个方法。一个SEL类型数据就代表一个方法。2>使用方法把方法包装成SEL类型的数据;根据SEL数据找到对应的方法地址;根据方法地址调用对应的方法;3>创建SEL类型的数据SEL s1 = @sele
2014-07-27 16:52:33 372
原创 黑马程序员-----内存管理(六)
ARC1、概念循环引用计数,是一个编译器特性与Java的垃圾回收机制属于运行时特性。即当编译器编译代码的时候会自定检测是否生成释放内存的代码。 2、ARC判断准则只要没有强指针指向对象,就会释放对象。 3、指针分类1>强指针:默认情况下,所有的指针都是强指针。2>弱指针:__weak 4、ARC当中的@property1>strong用stron
2014-07-27 10:35:18 433
原创 黑马程序员-----内存管理(五)
内存管理——autorelease1、autorelease方法(半自动)1>延迟对象的释放时间,只有是等pool销毁以后才会释放对象。2>autorelease方法返回对象本身3>autorelease会将对象放入到一个自动释放池中4>OC程序在运行时会自动创建一个自动释放池5>当自动释放池被销毁,会对池子里的所有对象做一次release操作。6>调用完autorel
2014-07-27 10:31:26 423
原创 黑马程序员-----初识OC(三)
一、继承1、继承的基本用法设计两个类Bird、Dog// Bird的声明@interface Bird : NSObject{ @public int weight;}- (void)eat;@end// Bird的定义@implementation Bird- (void)eat { NSLog(@"吃吃吃-体重:%d"
2014-07-27 10:26:20 355
原创 黑马程序员-----内存管理(四)
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
2014-07-26 23:47:22 444
原创 黑马程序员-----C语言基础(一)
C语言基础1、常量1>整数常量:1,9,3,42>浮点常量双精度浮点型:5.42,-2.3,0.0单精度浮点型:5.43f,-2.3f,0.0f3>字符常量:用单引号括起来的单个字符,eg:'d','1','+'4>字符串常量:用双引号括起来,eg:"itcast"2、变量1>只要有不确定的数据,就应该定义变量来保存。2>格式控制符(占位符)%d/%i:
2014-07-26 18:55:12 415
原创 黑马程序员-----OC内存管理(三)
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
2014-07-26 18:02:40 455
原创 黑马程序员-----OC内存管理(二)
1>内存管理原则①只要还有人在用某个对象,那么这个对象就不会被回收;只要想用这个对象,就让计数器+1;档不想使用这个对象,就让对象的计数器-1。②如果你通过alloc,new或者[mutable]copy来创建一个对象,那么你就必须调用release或者autorelease,如果不是你创建的,你就不需要去[auto]release。③只要你掉用了retain,无论这个对象是怎么产生的
2014-07-26 17:57:08 451
原创 黑马程序员-----OC内存管理(一)
内存管理1>基本原理①为什么要进行内存管理因为移动设备的内存容量是非常有限的,iPhone4的内存只有512MB,如果不对内存进行合理的管理,那么我们的机器内存很可能是不够用的。②OC内存管理针对哪些范围任何继承了NSObject的对象,对其他基本数据类型(int、char、float、double、struct、enum等)无效,就是说OC的内存只对OC对象有用。2>引用
2014-07-25 16:41:36 585
转载 入学流程必经之路
黑马程序员--入学流程必经之路黑马程序员 入学考试流程 由程序自动化管理,参加入学考试只需要登陆黑马入学报名系oa.itheima.com,即可完成整个入学考试。为客观公正的反映每一位同学的综合能力,入学考试分为5个环节。(自荐信10分+基础测试10分+入学资格20分+入学考试30分+面试50分)取5个环节的总得分作为录取的依据,总分在100分以上即可获得黑马的入学
2014-07-25 13:11:50 838
转载 Xcode问题
首先我先给大家介绍一下.pch在IOS开发的项目中有一个XX_Prefix.pchXX_Prefix.pch:扩展名.pch表示"precompiled header",这是一个你工程要用到的来自于外部框架的头文件列表。xcode将编译这些头到文件,这将减少你在选择Build 或Build and Go时编译项目的时间。通常用到的头文件已经自动包含了pch,系统编译每个.m文件前,都会先i
2014-07-25 12:48:03 414
原创 黑马程序员-----Category,protocol和block(四)
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
2014-07-25 09:02:56 384
原创 黑马程序员-----Category,protocol和block(三)
代理模式1、原理:有些麻烦的不想自己亲自去做的事情,可以找个人帮忙,也就是交给代理对象去做。而且只要能够解决需求,任何人都可以。2、思路:首先,我们当前对象得拥有代理对象属性。只有拥有了代理属性,才可能让代理去给我们做事情。其次,我们清楚的知道我们的代理拥有哪些方法。只有我们的代理拥有能够解决我们需求的方法,我们才会选择该代理去为我们服务,这是我们对代理的唯一要求。最后,能保证
2014-07-24 09:23:23 451
原创 黑马程序员-----Category,protocol和block(二)
Protocol //Button.h @protocol ButtonDelegate - (void)onclick:(Button *)btn; @end @interface Button : NSObject @property (nonatomic,retain) id delegate; - (void)click; @end
2014-07-22 13:50:58 438
原创 黑马程序员-----Category,protocol和block(一)
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
2014-07-22 10:32:46 396
原创 黑马程序员-----@property和@synthesize
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------@property// Student.h// @property//// Created by adh on 14-7-21.// Copyright (c) 2014年 adh. All rights reser
2014-07-21 09:04:55 423
原创 黑马程序员-----初识OC(二)
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------初识OC类1、 OC类的基本使用规则//类的申明在.h文件当中 @interface 类名 : 父类名 { //类的成员变量定义...}//方法申明...@end//类的实现在.c
2014-07-20 18:12:28 459
原创 黑马程序员-----初识OC(一)
黑马程序员--论坛技术分赚取之道此篇针对于论坛如何获取技术分以便于进入黑马集训营黑马入学流程还有不了解的,请访问:黑马程序员入学流程地址:http://bbs.itheima.com/thread-100421-1-1.html一、论坛技术分是什么?如果想被黑马录取,需要两点要求:1、黑马报名流程总分100分以上。2、论坛技术分在25分以上。总体来讲:论坛技
2014-07-20 09:09:41 433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人