- 博客(34)
- 收藏
- 关注
原创 IOS多线程开发-NSThread原理及演示
// 创建线程方式1- (void)test1{ // 实例化一个线程对像 NSThread *thread = [[NSThreadalloc] initWithTarget:self selector:@selector(run) object:nil]; // 让线程开始工作,启动线程, 在新开的线程执行run方法 [
2015-01-15 23:28:28
581
原创 多线程开发原理
什么是线程?1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行n多线程的原理p 同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)p 多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)p 如果CPU调度线
2015-01-15 23:15:11
561
原创 Foundation框架基础 NSFileManager-文件管理器
#import/* NSFileManager 单例对象 */intmain(intargc, const char * argv[]) { @autoreleasepool { // 获取NSFileManager单例对象 NSFileManager *fm = [NSFileManag
2014-12-09 22:15:25
554
原创 Foundation框架基础 NSData-数据
#import/* 概念: IOS中二进制文件使用NSData保存 音频、视频文件必须使用NSData来保存 */intmain(intargc, const char * argv[]) { @autoreleasepool {// 读取文件 NSMutableData *dataM = [NS
2014-12-09 22:13:43
472
原创 foundation框架基础 NSDate-日期
#import//NSCalendar 日历,主要用于日期的计算intmain(intargc, const char * argv[]) { @autoreleasepool { NSCalendar *calendar = [NSCalendarcurrentCalendar];
2014-12-09 22:12:22
530
原创 Foundation框架基础 常用的结构体
#importintmain(intargc, const char * argv[]) { @autoreleasepool { // 1、NSRange 区间 NSRange range;// range.location 表示开始的位置//
2014-12-09 22:10:52
427
原创 Foundation框架基础 NSSet
#import/* 特点:无序,元素不可以重复,可以用快速去除数组中的重复元素,效率比数组要高 NSSet:特点:不可以变,一经创建不能增删改 NSMutableSet:可以增删,没有改 */intmain(intargc, const char * argv[]) { @autoreleasepool {
2014-12-09 22:07:56
396
原创 Foundation框架基础 NSMutableDictionary-可变字典
#import/* 在字典中所有key(键)都是唯一的 值没有要求,可以重复 NSMutableDictionary:是NSDictionary的子类,它是可变的字典,它支持增删除改的操作 */intmain(intargc, const char * argv[]) { @autoreleasepool {
2014-12-09 22:05:06
484
原创 Foundation框架基础 NSDictionary-字典
#import/* key 表示键 value 表示值 【掌握】概念:字典是一个无序的集合,它使通过键值对的方式来存储数据的 key是有要求 NSCopying才能成为字典key,一般情况都是使用字符串作为字典的key NSDictionary 不可变得字典,一经创建里面的元素就不可以改变了 Person age:@10 name:
2014-12-09 22:03:46
420
原创 foundation框架基础 NSMutableString 可变字符串
#import/* NSMutableString 可变字符,它是NSString子类 增改删的操作 一个字符串需要经常修改其中的内容,那么就使用NSMutableString *//* 把 20 itcast 拼接起来使用空格隔开 *///不要使用这种方式,效率低voidtest(){ // 只是
2014-12-09 21:57:27
546
原创 Foundation框架基础 NSString
#import/* 概念:NSString是不可变字符串,所有它所有产生其他字符串方法都是生成一个新的字符串,而不会改变原来字符串 */#import"NSString+CZ.h"//字符串与URL//URL: 概念:Uniform Resource Locator 统一资源定位符//URL:格式 协议头://主机名称/资源路径//http:/
2014-12-09 21:56:09
488
原创 Foundation框架基础 NSMutableArray-可变数组
#import#import"CZDog.h"intmain(intargc, const char * argv[]) { // 创建一个空的可变数组// NSMutableArray *arrayM = [NSMutableArray array];// 创建的时候该数组可容纳的元素个数 // 通过一个不可变数
2014-12-09 21:49:55
403
原创 Foundation框架基础 NSArray
Foundation/Foundation.h>#import"CZDog.h"#import "CZPerson.h"/* NSArray:不可以变 */intmain(intargc, const char * argv[]) {// 字符串转数组 NSArray *array =@[@"a",@"b",@"c",@
2014-12-09 21:46:41
520
原创 Object-C加强 SEL类型
/* SEL是一种数据类型,代表方法签名,通过它就找到这个对象上方法 SEL 其实也是对方法的一种包装 , 将方法包装成一个SEL类型的数据, 去找对应方法地址 , 找到方法地址就可以调用方法 比较耗性能 1、定义变量 SEL 变量名称 2、通过@selector(方法名称) 快速生成一个SEL 3
2014-12-04 22:13:32
464
原创 Object-C加强 分类以及扩展
分类(类别)作用:扩展已有类的功能 1、分类是原来的类增加方法 2、在方法内部可以访问原有类的成员变量(定义头文件中)@interface CZPerson (Drink) 步骤 1、为原有类创建一个分类 2、在分类中增加新的方法的声明和实现 注意点: 1、分类中不能扩展原有类的成员变量 2、@property在分
2014-12-04 22:03:31
500
原创 OBject-C加强 代码总行数计算-项目实现
考察NSString , NSArray的使用 NSFileManager 功能 : 计算文件代码行数, 统计代码量
2014-12-03 23:07:24
614
原创 Object-C加强 Protocol协议
protocol 协议用途:用来声明一大堆方法(不能声明成员变量) 只要某个类遵守了这个协议,就相当于拥有这个协议中所有方法声明 1.协议的定义@protocol 协议名称@end 2.如何遵守协议1>类遵守协议@interface 类名:父类名 @end 2>协议遵守协议@protocol 协议名称 @end 3.协议中方法
2014-12-03 23:00:26
403
原创 Object-C加强 Block使用
block 用来保存一段代码block 的标志:^ 实现格式 ^ 返回值类型(形参列表) { 语句... }; block跟函数很像:1.可以保存代码2.有返回值3.有形参4.调用方式一样 当发现多个方法中大部分代码相同 , 只有一部分代码经常变化这时可以把经常变化的代码通过 block 参数传入 在block 中可以访问局部变量
2014-12-03 22:53:19
400
原创 Object-C加强 内存管理
1 . 基本方法使用1> retain : 计数器 + 1 , 会返回对象本身2> release : 计数器 - 1 , 没有返回值3> retainCount : 获取当前的计数器4> dealloc * 当一个对象要背回收的时候, 就会调用 * 一定要调用[super dealloc] , 这句调用要放在最后面 2.概念 1>僵尸对象 : 所占
2014-12-01 23:00:17
504
原创 OC基础总结
1.NSLog的使用:Foundation用于日志输出的函数 %@ 输出对象的占位符,当它输出的对象的时候会调用对象description方法 %C Unicode字符 %c ASCII码 2.面向对象思想 1、相对于面向过程 面向过程:强调的步骤,以动词打头的 面向对象:强调完成这个事情,所需的对象 2、面向对象的好处
2014-11-25 18:31:31
1091
原创 C语言基础 预处理指令
在编译前进行解析处理的指令 源代码 —> 编译预处理 —> 编译 —> 链接 —> 运行 编译预处理指令 1.宏定义 #define 1.1 不带参数的宏定义 1.2 带参数的宏定义
2014-11-20 22:01:00
533
原创 C语言基础 结构体 枚举
结构体基本概念构造类型 : 由已有的数据数据类型构成类型 1.数组 : 多个同种数据类型的数据构成的那么一种类型 特点 : 只能存放一种数据类型 2.结构体 : 用来存放表示某种特定含义的一组数据 它是对数据的封装 函数对功能的封装
2014-11-20 21:40:01
475
原创 C语言基础 内存区分与存储
内存分区fen'pei 从高地址到低地址 栈 : 局部变量 , 内存是由系统管理堆 : 存放对象 , 它由程序员自己申请释放, 它的内存需要程序员自己管理全局区 : 存放全局变量与静态变量, 它由系统管理常量区 : 用来存放常量, 内存它由系统管理 , 它是只读区代码区 : 用来存放代码, 内存它由系统管理 , 它是只读区
2014-11-12 22:42:27
479
原创 C语言基础 指针函数与函数指针
11-12 指针函数指针函数 : 返回值为指针的函数局部变量的地址不可以作为函数返回值 , 因为局部变量在函数结束时候已经被系统回收了char *words(){return “today is good day!\n”;}char *words2() //错误示范 (局部变量){char words[] = “today is g
2014-11-12 22:41:10
422
原创 C语言基础 指针
11-11 指针内存中最小的存储单元 : 字节 , 每一个字节在内存中都有一个编号, 这编号就是指针指针作用 : 有了指针就可以访问它所指向的存储空间*作用 : 1.在定义指针变量的时候 , 它就类型说明符 , 它说明定义的这个变量是一个指针变量2.如果不是在定义指针的时候 , 它是一个操作符 , 用在指针变量的前面是访问指针所指向的存储空间&作用 :
2014-11-12 22:36:32
384
原创 C语言基础 字符串
字符串字符串有一个结尾的表示 “\0”字符串与字符数组的区别在于字符串是以\0结尾的, 而字符数组任意字符结尾%s 根据\0来判断字符串有多长总结 : \0 的ASCII码就是 01. 字符串是一个以\0结尾字符数组2. %s输出内容仅会检查是否遇到\ 03. 字符数组如果没有部分初始化 那么没有初始化的元素就被初始化为0,\0的ASCII码就是04
2014-11-10 00:25:24
473
原创 C语言基础 数组与排序
11-8 数组用来保存多个相同数据类型的数据集合定义变量 变量类型 变量名称;定义数组 变量类型 数组名称 [元素个数];定义一个可以容纳5个int类型的数据的数组int scores[5];1.数组只有定义了才能初始化2.只定义数组没有初始化那么数组中都是垃圾值,所以数组只有初始化了才可以使用./*总结:1.数组元素作为函数
2014-11-10 00:16:34
614
原创 C语言基础 进制
进制十进制 : 逢十进一八进制 : 逢八进一二进制 : 逢二进一以0b或0B开头就表示二进制数int b = 0b1101;printf(“b = %b”,b);八进制:以0开头的就表示八进制数int o = 015;printf(“o = %d”,o);十六进制: 以0x或0X开头的数就是一个十六进制的数int x = 0xd;pr
2014-11-10 00:09:09
1273
原创 C语言基础 函数
11-5 函数函数:完成特定功能的代码块作用:管理代码优点:提高代码的可读性· 提高代码的复用性· 提高代码的可维护性函数:函数名不可以重复定义要给函数起个有意义的名字函数特点:只有调用才会执行 函数的定义格式形参列表 返回类型 函数名称(参数类型 参数名称,参数类型 参数名称)语句;…} 如何去定义一个
2014-11-10 00:07:39
596
原创 C语言基础 循环结构 while for
while循环循环: 用来处理一些重复执行的操作些循环的具体步骤:1.确定需要重复执行的操作2.确定循环终止的条件1,在循环开始前,需要做点事(定义一个循环控制变量并将其初始化)2,确定循环约束条件3,在每一次循环结束的时候或在循环中,要去改变循环控制变量的值,让它不换接近约束条件.int count =0;while (count prin
2014-11-08 23:02:36
1231
原创 C语言基础 选择结构 流程控制 If Switch
switchswitch(表达式){case 常量;语句;…break;case 常量;语句;…break;default;语句;…break;}注意点: 1、case 后面的常量不可以重复2、break 作用:结束switch 语句3、switch 语句只有遇到break 或者 switch 后面大括号才会结束
2014-11-08 22:54:19
685
原创 C语言基础 运算符
自增自减运算符无论++在前还是在后都会自增1++a; a本身会自增1,它的返回值(结果)是原来的 a + 1 的值a++; a本身会自增1,它的返回值(结果)是原来的 a 的值int a = 2;int b = a++ + a++ ; // 2 + 3 a = 4b = ++a + ++a ; // 5 + 5 a = 6
2014-11-08 22:38:21
555
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人