自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唐枫专栏

技术交流

  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 多线程NSThread

进程1、进程是指在系统中正在运行的一个应用程序2、每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内3、通过 活动监视器 可以查看 Mac 系统中所开启的进程线程1、进程要想执行任务,必须得有线程,进程至少要有一条线程2、程序启动会默认开启一条线程,这条线程被称为主线程或UI 线程3、线程是进程的基本执行单元,进程的所有任务都在线程中执行多线程的原理同一时间,CPU只能处理一条

2015-11-26 23:58:21 438

原创 堆、栈

作为一个程序的开发人员,接触的最多的就是内存中的堆和栈,那么他们到底有什么不同呢? 1、内存内存是与CPU沟通的桥梁,用来暂时的存储CPU的运算数据2、内存管理指软件运行时对计算机内存资源的分配和使用的技术。其主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。3、如何保存数据 在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同

2015-11-22 01:52:47 397

原创 CoreAnimation核心动画

1、核心动画的简介Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。 Core Animation可以用在Mac OS X和iOS平台。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。 要注意的是,Core Animation是直接作

2015-11-19 01:27:38 357

原创 UIView动画和定时器

一、UIView基础方法介绍 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间UIView常见方法

2015-11-15 09:23:52 611

原创 UI 和 UIView

1、UI基础1、UI就是user Interface 就是用户界面,是软件应用和用户之间的交互的接口2 、控件 ,就是每个UI的对象,简单的说就是看得见的对象。 --->(可视化对象)3、UI需要 的类一般都存在UIKit框架中的。。4、UIView 是所有控件的基类。5、UIViewController是一个iOS应用的基本试图管理模型,它重要工作就是:负责创建,显示、销毁UIVie

2015-11-12 01:57:08 434

原创 oc单例模式

1、单例模式概念 1)什么是单例模式:(Singleton)单例模式的意图是是的类的对象成为系统中唯一的实例,提供一个访问点,供客户类 共享资源。2)什么情况下使用单例?1、类只能有一个实例,而且必须从一个为人熟知的访问点对其进行访问,比如工厂方法。2、这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。3)单例设计模式的要点: (1) 某个类只能有一个实例。 (2)他必

2015-11-10 12:44:57 475

原创 集合对象的内存管理、copy概念

一、集合对象 1、集合包括 NSArray ,NSSet , NSDrictionary2、内存管理当一个对象加入到集合中,那么该对象的引用计数会+1 当集合被销毁的时候,集合会向集合中的元素发送release消息3、内存管理原则1> 当调用alloc、new、copy(mutableCopy)方法产生一个新对象的时候,就必须在最后调用一次release或者autorelease2> 当调用r

2015-11-10 12:38:30 576

原创 OC结构体、NSNumber、NSValue、NSDate

一、常见结构体 1、NSPoint和CGPoint的使用CGPoint和NSPoint是同义的typedef CGPoint NSPoint;CGPoint的定义 struct CGPoint {CGFloat x;CGFloat y; };typedef struct CGPoint CGPoint;typedef double CGFloat; //64位是double, 32位

2015-11-10 12:18:03 491

原创 iOS沙盒(sandbox)机制

1、沙盒的基本概念和作用每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用的文件系统隔离, ios系统不允许访问其他应用的应用沙盒。在ios8中已经开放访问(extension)。extension是iOS8新开放的一种对几个固定系统区域的扩展机制,它可以在一定程度上弥补iOS的 沙盒机制对应用间通信的限制。2、应用沙盒一般包括以下几个文件目录:应用程序包、Documents、L

2015-11-10 11:48:04 508

原创 NSFileManager介绍和用法

1、NSFileManager介绍顾名思义, NSFileManager是用来管理文件系统的 它可以用来进行常见的文件\文件夹操作(拷贝、剪切、创建等)NSFileManager使用了单例模式singleton 使用defaultManager方法可以获得那个单例对象 [NSFileManager defaultManager]2、NSFileManager判断文件文件夹1、- (BOOL)fil

2015-11-10 11:29:28 552

原创 NSDictionary 和NSMutableDictionary介绍

一、NSDictionary 1、NSDictionary是什么?NSDictionary 就是一个字典是一种键值对应的数据集合NSDictionary的作用类似: 通过一个key(键), 就能找到对应的value(值) NSDictionary是不可变的, 一旦初始化完毕, 里面的内容就无法修改2、NSDictionary的用法- (NSUInteger)count; 返回字典的键值对数目-

2015-11-10 11:17:56 588

原创 NSArray和NSMutableArray的介绍和用法

一、NSArray 1、C语言中的数组1)回顾C语言中的数组使用方法int a[5]={1,2}; int *pa[3];2、NSArray的基本介绍1)什么是NSArray?NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的弊端int array[4] = {10, 89, 27, 76}; 只能存放一种类型的数据.(类型必须一致) 不能很

2015-11-10 11:05:45 478

原创 NSRange 和 NSString 详解

一、NSRange 1、NSRange的介绍 NSRange是Foundation框架中比较常用的结构体, 它的定义如下: typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者

2015-11-10 10:50:59 4810

原创 block的底层实现

1、我们都会使用 block ,但是它真正是如何工作的呢?换句话说block的本质是什么? 看下列实例,想想程序的结果:int main(int argc, const char * argv[]) { int a = 10; __block int b = 20; void (^block)() = ^(){ printf("a = %d\n",a);

2015-11-08 01:32:33 407

原创 Foundation框架- NSString用法

1、Foundation框架介绍 1)什么是框架? 框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架 Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字 典和集合,其他功能包括处理日期和时间、内存管理、处理文件系

2015-11-07 02:08:31 447

原创 OC重点知识:代理

1、protocol 的基本概念 在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC 里面,Interface是一个类的头文件的声明,并不是真正意义上的接口的意思,在OC中,接口是由 一个叫做协议的protocol来实现的。 这个里面可以声明一些方法,和java不同的是,它可以声明一些必须实现的方法和选择实现 的方法。这个和j

2015-11-06 01:59:54 391

原创 UICollectionView布局详解

1、UICollectionViewController作为一个功能强大的UI控制器,在当下的开发中占据了很大的地位,在很多的应用中都可以找到他的身影。那么接下来我们就来详细演练一下他的几种用法。一、实现线性布局的相册效果 1、首先分析可以知道 ,一般情况这种的线性布局我们布局直接去继承 UICollectionViewLayout的流水式布局UICollectionViewFlowLayout

2015-11-04 08:19:12 1348

原创 OC实用技术 - Block

1、block的基本概念Block对象是一个C级别的语法和运行机制。它与标准的C函数类似,不同之处在于,它除了有 可执行代码以外,它还包含了与堆、栈内存绑定的变量。因此,Block对象包含着一组状态数据, 这些数据在程序执行时用于对行为产生影响。 你可以用Block来写一些可以传到API中的函数语句,可选择性地存储,并可以使用多线程。 作为一个回调,Block特别的有用,因为block既包

2015-11-03 00:29:54 420

原创 OC基础第六章:分类(category) 、延展(Extension)

一、分类(category) 1、类别概念 Category有很多种翻译: 分类 \ 类别 \ 类目 (一般叫分类) Category是OC特有的语法, 其他语言没有的语法(类似于C#语言中的”扩展方法”和”partial” 关键字) 2、类别的作用 在不修改原有的类的基础上增加新的方法 一个庞大的类可以分模块开发 一个庞大的类可以由多个人来编写,更有利于团队合作3、使用类别的目的

2015-11-02 01:21:11 473

原创 OC进阶: 音频

一、简单来说,音频可以分为2种 (1)音效 又称“短音频”,通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中的“背景音乐”,一般播放时间较长 框架:播放音频需要用到AVFoundation.framework框架AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统

2015-11-01 01:38:56 1003

原创 ARC

1、指针分类 (1)强指针:默认的情况下,所有的指针都是强指针,关键字strong (2)弱指针:_ _weak关键字修饰的指针 声明一个弱指针如下: _ _weak Person *p; 2、什么是ARC? Automatic Reference Counting,自动引用计数,即ARC,可以说是WWDC2011和iOS5所引入 的最大的变革和最激动人心的变化。ARC是新的LLVM 3

2015-10-31 01:00:40 325

原创 控制器:UITabBarController

1、UITabBarController的使用步骤 初始化UITabBarController 设置UIWindow的rootViewController为UITabBarController 根据具体情况,通过addChildViewController方法添加对应个数的子控制器2、UITabBarController的子控制器UITabBarController添加控制器的方式有2种 添

2015-10-30 00:59:41 536

原创 OC内存管理三

一、 循环retain的场景 • 比如A对象retain了B对象,B对象retain了A对象 • 循环retain的弊端 • 这样会导致A对象和B对象永远无法释放 • 循环retain的解决方案 当两端互相引用时,应该一端用retain、一端用assign(weak)二、@class 1、@class的使用 在.h文件中使用@class引用一个类在.m文件中使用#import包含这个类的

2015-10-29 01:18:10 362

原创 OC内存管理二

一、内存管理的关键如何判断对象被回收? 重写dealloc方法,代码规范 (1)一定要[super dealloc],而且要放到最后,意义是:先释放子类占用的空间,在释放父 类占用的空间 (2)对self(当前)所拥有的的其他对象做一次release操作 -(void)dealloc { [_car release]; [super

2015-10-29 01:09:15 289

原创 OC内存管理一

一、管理范围 管理任何继承NSObject的对象,对其他的基本数据类型无 效。 本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于 栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指 向对象的指针也被回收,此时对象已经没有指针指向,但依然存在于内存中,造成内存泄 露。二、OC内存管理原理 1) 对象的所有权 对象所有权概

2015-10-29 00:55:52 287

原创 OC基础第五章:构造方法

一、构造方法 构造方法:用来初始化对象的方法,是个对象方法,-开头 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值 1、构造方法 1)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; new方法的内部会分别调用两个方法来完成3件事情: (1)使用alloc方法来分配存储空间(返回分配的对象); (2)使用init方法来对对象

2015-10-29 00:51:00 299

原创 源代码管理工具 -SVN

1、为什么要进行源代码管理? 为了解决在软件开发过程中,由源代码引发的各种繁碎、反复、耗时的问题。2、源代码管理工具的作用 2.1、能够追踪一个 项目从诞生一直到定案的过程 2.2、记录一个项目中的所有内容的变化 2.3、方便查询各个版本的修订情况,并且可以无数的恢复以前的版本3、常见的源代码管理工具 3.1、CVS 开启了版本控制的先河,1990年诞生的主流管理工具3.2、SVN是Sub

2015-10-28 00:32:44 397

原创 OC基础第四章:@property和@synthesize

一、@property和@synthesize @property (参数),下列是它的参数的详细: 原子性:atomic(对属性加锁,多线程下是安全的,默认值),nonatomic(对属性不加锁,线程不安全,但是相对于atomic速度快) 读写属性:readwrite (生成getter 和setter 默认值),readonly (只生成getter方法) Set方法的处理:assig

2015-10-27 12:57:29 735

原创 OC基础第三章: 继承 、 封装、多态

一、 继承 继承定义: 子类拥有了父类的属性和方法.派生: 父类向下产生子类的过程称为派生继承的注意事项: 1. 子类不能定义和父类同名的变量,但是可以继承父类的变量 2. OC类支持单一继承,不支持多继承 3)、基类的私有属性能被继承,但不能被使用实例变量修饰符在子类中的引用问题: 1>、@public类型的变量在子类可以正常的访问和使用。 2>、@protected类型的变量在

2015-10-26 01:30:15 387

原创 OC基础第二章:面向对象

1、面向对象(object-oriented ;简称: OO) 定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。 面向对象的几个名词:oop(面向对象编程),ooA(面向对象分析),OOD面向对象设计 2、面向对象的三大特性:封装、继承、多态 3、面向对象和

2015-10-26 01:09:30 382

原创 OC基础第一章:OC基础语法

第一节 OC语法 1、@符号 1、@符号的使用,@“”这个符号表示将一个C语言的字符串转化为OC中的字符串对象NSString 2、@标示符 OC中大部分的关键字都是以@开头的,比如@interface ,@implementation ,@end 2、OC的注释 1、三种注释:单行注释 ,多行注释,文档注释 ,#if 0 #endif 2、注释不参与程序的编

2015-10-26 00:48:40 399

原创 C语言第十一章:文件

1、文件的分类: 1) 从用户的角度看,文件可分为普通文件和设备文件两种。 2)从文件编码的方式来看,文件可分为ASCII码文件(文本文件)和二进制码文件(也叫流式文件)种。1、对文件的操作步骤 1)引入头文件(stdio.h ) 2)定义文件指针 3)打开文件 fopen函数用来打开一个文件,其调用的一般形式为: 文件指针变量名 = fopen( 文件名, 使用文件方式 ); 其中

2015-10-25 07:03:42 741

原创 C语言第十章:结构体、枚举、预处理指令

1、 构造类型:根据已定义的一个或多个数据类型用构造的方法构造新的类型。 2、 结构体:由若干个相同或者不同的数据类型组成的结构体 为什么要有结构类型? 结构体可以把功能相同的数据组织起来,存在一起,用的时候方便,而且在调用函数时,若传递参数较多,传一个结构体相对而言简单一些,很多系统自带的函数必须用结构体。什么是结构体? “结构”是一种构造类型,它是由若干“成员”组成的。每一个

2015-10-25 06:59:07 641

原创 C语言第九章:内存管理

一、 二维字符数组 1、 用二维的字符数组存储多个字符串 1)、第一维存的是每个字符串的首地址 2)、每个字符串的长度不能超过第二维长度 2、 它就是一个二维数组。 二、 char类型的指针数组 1、格式:char *name[]={“weqw ”.”ffg”}; 三、练习字符串排序(输入字符串)四、fgets()函数的使用 1、

2015-10-25 06:53:10 386

原创 C语言第八章:指针

第一节指针 什么是指针:指针就是地址 int *pi; //一个指向整形变量的指针 一、 理解地址 1、 每个内存单元都有地址,地址是不会变的,但是地址的内容是不确定的。 2、 地址就是指针,也就是内存单元的编号。 3、 内存单元的地址和内存单元的内容是不同的概念。 4、 “无指针,不自由”出自书《指针的艺术》 二、 使用指针的好处 1、 让函数有

2015-10-25 06:38:08 587

原创 C语言第七章:字符串

一、字符串 a) 、字符串是位于双引号中的字符序列 b) 、注意:可以把字符常量赋值给一个字符变量,但不能把字符串常量赋值给字符变量 二、 字符数组 (用来存储字符的数组) a)、一维数组 char ch[10]; //根据一维数组的定义 b)、二维数组的定义 char[4][4]; 三、字符数组的初始化和引用 注意:字符数组中可以出现整数,因为整数和字符都

2015-10-25 01:30:59 451

原创 C语言第六章:数组

数组的几个名词 1)数组:一组具有相同数据类型的数据的有序的集合 2)数组元素:构成数组的数据。数组中的每一个数组元素具有相同的名称,不同的下标,可以作为单个变量使用,所以也称为下标变量。 3)数组的下标:是数组元素的位置的一个索引或指示。 4)数组的维数:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、三维、多维数组在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元

2015-10-25 01:29:11 916

原创 C语言第五章:C语言的模块化编程

第一节 模块化编程(多文件开发):就是多文件(.c文件)编程,一个 .c 文件和一个 .h 文件可以被称为一个模块。 多文件开发的源程序是:? .c C语言的源文件 .h (header头文件) 1)、方法的声明 但是不能实现方法 2)、声明变量(声明 .h文件 实现.c文件) 3)、声明

2015-10-25 01:21:19 1062

原创 C语言第四章:函数

一、 函数:功能相对独立的代码段 1、 从定义的角度函数分为:库函数和用户定义函数(用户自己定义的函数) 2、 有返回值 和无返回值的函数 3、 从数据传送的角度分为:无参函数和有参函数 二、 自定义函数的书写格式 1、 函数定义分为三步:1>、声明 2>定义函数 3>调用函数 2、 基本格式: 返回值类型 函数名称(函数的参数){ 函数体;} 三、 根据

2015-10-25 01:18:52 452

原创 C语言第三章:C语言和程序结构

➢ 表达式语句:由表达式末尾加上分号构成。 ➢ 函数调用语句:由函数调用表达式加上分号构成。 ➢ 空语句: ; ➢ 选择结构语句:if语句 switch语句 ➢ 循环语句:for语句 while语句 do while语句 复合语句:用花括号{}将以上任意语句括起来构成一条复合语句。 C语言的程序结构 第一节: 选择结构 一、变量在使用的过程中易犯的错误

2015-10-25 01:12:38 1328

空空如也

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

TA关注的人

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