自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 运算优先级

优先级描述运算符1括号()、[]2正负号+、-3自增自减,非++、--、!4乘除,取余*、/、%5加减+、-6移位运算

2015-01-23 12:51:05 543

原创 h文件和.c文件的分工

1.    单文件的坏处  一个文件的内容太多,不利于阅读、调试 多人修改同一个文件出问题 公司里面是团队合作 2.    将sum函数抽取到另一个.c文件中 先直接调用sum函数,编译警告、链接main.c错误  #include “sum.c” ,编译链接main.c,运行成功(画图分析.o文件中的东西) 如果avr.c中使用sum.c,编译链接main.c,运

2015-01-23 10:54:40 397

原创 C 语言内存分析

一、变量的内存分析1.    字节和地址为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。1>  内存以“字节为单位”0x表示的是十六进制,不用过于纠结,能看懂这些数字之间谁大谁小就行了2>  不同类型占用的字节是不一样的,数据越大,所需的字节数就越多 2.    变量的存储1>  所占用字节数跟类型有关,也跟编译器环境有关

2015-01-23 10:41:11 313

原创 NSObject和反射 --foundation

NSObject的常见用法l- (BOOL)isKindOfClass:(Class)aClass判断是否为aClass或者aClass的子类的实例l- (BOOL)isMemberOfClass:(Class)aClass判断是否为aClass的实例(不a包括aClass的子类)l- (BOOL)conformsToProtocol:(Prot

2015-01-22 16:20:54 348

原创 28- -NSDate-foundation

NSDate的静态初始化l+ (id)date返回当前时间l+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs 返回以当前时间为基准,然后过了secs秒的时间l+ (id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)sec

2015-01-22 16:20:04 260

原创 27-NSNumber、NSvalue

NSNumberlNSNumber可以将基本数据类型包装成对象,这样就可以间接将基本数据类型存进NSArray、NSDictionary等集合中l常见的初始化方法:l+ (NSNumber *)numberWithChar:(char)valuel+ (NSNumber *)numberWithInt:(int)valuel+ (NSNumber *)n

2015-01-22 16:19:13 230

原创 26--(补充)-NSDictionary、MutableDictionary

////  main.m//  NSDictionary(NSMutableDictionary)////  Created by amesty on 15-1-18.//  Copyright (c) 2015年 itcast. All rights reserved.//#import #import "Student

2015-01-22 16:18:40 284

原创 25-NSDictionary、MutableDictionary

l通过唯一的key找到对应的value,类似于Java的Mapl常见的创建NSDictionary的方法l+ (id)dictionaryl+ (id)dictionaryWithObject:(id)object forKey:(id NSCopying>)keyl+ (id)dictionaryWithObjectsAndKeys:(id)firstObje

2015-01-22 16:17:49 263

原创 24-(补充)NSArray(NSMutableArray)-Foundation

////  main.m//  NSArray(NSMutableArray)-Foundation////  Created by amesty on 15-1-18.//  Copyright (c) 2015年 itcast. All rights reserved.///**  1.NSArray 数组元素不可变。只能

2015-01-22 16:16:34 304

原创 23-NSArray(NSMutableArray)-Foundation

NSArrayl用来存储对象的有序列表,它是不可变的l不能直接存储C语言中的基本数据类型,如int、float、enum、struct,也不能存储nill创建NSArray的常用方法l+ (id)arrayl+ (id)arrayWithObject:(id)anObjectl+ (id)arrayWithObjects:(id)firs

2015-01-22 16:15:42 298

原创 22-指向指针的指针-foundation

参考文档地址:http://www.cnblogs.com/dzry/archive/2011/05/12/2044835.html    int a[5] = {1, 2, 3, 4, 5};    int *p = a;    int **point = &p;出point指针中存放的是p指针的地址。而p指针中存放的是a[0]的地址。所以*point和p

2015-01-22 16:13:37 284

原创 21(补充)-NSString,NSMutableString -foundation

//  main.m//  19-NSString(NSMutableString)-foundation////  Created by amesty on 15-1-18.//  Copyright (c) 2015年 itcast. All rights reserved.//#import #pragma mark NSS

2015-01-22 16:12:01 266

原创 20-NSString-foundation

首先理解内存空间分配    NSString * str = @“456"str为NSString *指针 栈空间        str—>( ffc2  ffc3) (NSString结构体类型指针存堆中地址)  (ffc2    ffc3)两个字节          4  (ffc3    ffc4)

2015-01-22 16:10:27 300

原创 19-OC-copy语法

1.一般结结构体对象的copy和mutablecopy只有一种情况是浅拷贝:不可变对象调用copy方法时l一个对象使用copy或mutableCopy方法可以创建对象的副本lcopy – 需要先实现NSCoppying协议,创建的是不可变副本(如NSString、NSArray、NSDictionary)lmutableCopy – 需要先实现NSMutab

2015-01-22 16:08:10 396

原创 18-常见结构体-foundation

(一)NSRang的基本使用l在Foundation/NSRange.h中对NSRange的定义typedef struct _NSRange {    NSUInteger location;    NSUInteger length;} NSRange;// typedef unsigned long NSUInteger;l这个

2015-01-22 16:07:21 325

原创 17-block与指向函数的指针

////  main.m//  Block补充////  Created by amesty on 15-1-14.//  Copyright (c) 2015年 itcast. All rights reserved.//#import int sum(int a, int b) {    return a

2015-01-22 16:04:18 261

原创 16-Protocol的定义与使用及block

协议单独写在一个文件中////  MyProtocal.h//  Block和协议////  Created by amesty on 15-1-9.//  Copyright (c) 2015年 itcast. All rights reserved.//#import //定义了一个名叫

2015-01-22 16:01:21 478

原创 15-Category的使用场景及用法

Category的使用场景:1、当你在定义类的时候,在某些情况下(例如需求变更),你可能想要为其中的某个或几个类中添加方法。2、一个类中包含了许多不同的方法需要实现,而这些方法需要不同团队的成员实现3、当你在使用基础类库中的类时,你可能希望这些类实现一些你需要的方法。当你在使用基础类库中的类时,你不想继承这些类而只想添加一些方法时。 遇到以上这些需求,Category可以帮助你

2015-01-22 15:59:41 555

原创 14-ARC自动引用内存使用及管理机制

//  main.m//  ARC的基本使用////  Created by amesty on 15-1-8.//  Copyright (c) 2015年 itcast. All rights reserved.///*  ARC的基本原理  (一)ARC的判断准则:  只要没有强指针指向对象,对象就会被释放。

2015-01-22 15:57:51 417

原创 @class

////  main.m//  循环retain////  Created by amesty on 15-1-8.//  Copyright (c) 2015年 itcast. All  rights reserved./*开发中类规范:1.  在 .h 文件中@class的作用仅仅声明某个名称是一个类 @class Card;

2015-01-22 15:57:35 356

原创 12-内存管理@property的参数

//  main.m//  @Property内存管理////  Created by amesty on 15-1-8.//  Copyright (c) 2015年 itcast. All rights reserved.//#import #import "Person.h"#import"USer.h"#i

2015-01-22 15:56:51 240

原创 11.内存管理的set方法

(二)Set方法的代码规范(1)基本数据类型:直接复制-(void)setAge:(int)age{_age=age;}(2)OC对象类型-(void)setCar:(Car *)car{//1.先判断是不是新传进来的对象If(car!=_car){//2 对旧对象做一次release[_car

2015-01-22 15:53:18 278

原创 10-retain和release的简单使用

//  Student.h//  内存管理1-retain和release的简单使用//#import @interface Student : NSObject@property int age;@end==============//  Student.m//  内存管理1-reta

2015-01-22 15:50:16 508

原创 09-OC内存管理

一、基本原理(一)为什么要进行内存管理。由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局

2015-01-22 15:48:53 220

原创 08-property和synthesize

////  Student.h//  property////#import @interface Student : NSObject {    int _age;    int _no;    float _height;}// 当编译器遇到@property时,会自动展开成getter

2015-01-22 15:47:37 259

原创 07-空指针和野指针

一、什么是空指针和野指针1.空指针1> 没有存储任何内存地址的指针就称为空指针(NULL指针)2> 空指针就是被赋值为0的指针,在没有被具体初始化之前,其值为0。下面两个都是空指针:1 Student *s1 = NULL;2 3 Student *s2 = nil; 2.野指针"野指针"不是NULL指针,是指向"垃圾

2015-01-22 15:41:28 384

原创 06-self关键字

OC中有一个self关键字,用法跟Java中的this类似,都是代表着当前方法的调用者。但self和this还是有区别的。一、Java中的this只能用在动态方法中,不能用在静态方法中1.在动态方法中使用this关键字1 public class Student {2 private int age;3 public void setAge(

2015-01-22 15:38:28 219

原创 05-自定义构造方法和description方法(%@带打印一个对象的时候,会调用这个方法)

description方法  %@带打印一个对象的时候,会调用这个方法//  Student.h//  构造方法////#import @interface Student : NSObject {    int _age;    int _no;}- (void)s

2015-01-22 15:35:49 492

原创 04.点语法

在Java中,我们可以通过"对象名.成员变量名"来访问对象的公共成员变量,这个就称为"点语法"。比如:1.在Student类的第2行定义了一个公共的成员变量age1 public class Student {2 public int age;3 }2.然后在第5行通过点语法直接给stu的成员变量age赋值1 public class Tes

2015-01-22 15:30:11 258

原创 03.第一个OC的类

一、语法简介1.类在Java中,我们用1个.java文件就可以描述清楚一个类;在OC中,一般用2个文件来描述一个类:1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。注意:.h中的方法只是做一个声明,并不对方法进行实现。也就是说,只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已,并不会编写方法内部

2015-01-22 15:27:27 235

原创 02-第一个OC程序解析

打开main.m文件,代码如下1.程序的入口点:main函数跟C程序一样,OC程序的入口点依然是main函数。在main.m的第3行已定义了一个main函数。 #import  // import会自动检查当前的头文件是否被包含如果已经包含了,就不需要再次加载。int main(int argc, const char * argv[

2015-01-22 15:09:49 365

原创 01-Objective-C概述

1.没有包名(命名空间)的概念在Java中,为了防止两个类名相同的类冲突,你可以将这2个类放在不同的包里面。OC中并没有"包"的概念,也就是没有命名空间机制,取而代之的是开发人员给类名加上前缀,使用前缀可以有效的防止类名冲突。比如NSString(OC中的字符串类)、NSArray(OC的数组类),它们的前缀都是NS 2.关键字都以@开头1> 我在前面说到,OC代码

2015-01-22 15:02:41 269

原创 21.typedef

一、typedef作用简介* 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const ch

2015-01-22 14:57:54 253

原创 20.枚举

一、枚举的概念////  main.c//  枚举////  Created by mj on 13-3-28.//  Copyright (c) 2013年 itcast. All rights reserved.//#include void test() {    // 定义一种枚举类型

2015-01-22 14:55:09 237

原创 19.结构体

////  main.c//  结构体////  Created by mj on 13-3-28.//  Copyright (c) 2013年 itcast. All rights reserved.//#include void test() {    // 这个机构只能在函数内部使用

2015-01-22 14:49:07 294

原创 18.static与函数、static与变量

static与函数、static与变量

2015-01-22 14:48:13 237

原创 17.extern与函数

extern与函数

2015-01-22 14:46:48 248

原创 16.变量类型 自动变量 静态变量 寄存器变量

一、变量的作用域C语言根据变量作用域的不同,将变量分为局部变量和全局变量。1.局部变量1> 定义:在函数内部定义的变量,称为局部变量。形式参数也属于局部变量。2> 作用域:局部变量只在定义它的函数内部有效,即局部变量只有在定义它的函数内部使用,其它函数不能使用它。 2.全局变量1> 定义:在所有函数外部定义的变量,称为全局变量。2>

2015-01-22 14:46:32 623

原创 15-预处理指令1-宏定义、条件编译、文件包含

1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。习惯上我们尽可能将预处理指令写在源程序

2015-01-22 14:44:09 321

原创 14返回指针的函数与指向函数的指针

一、返回指针的函数 指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的。返回指针的函数的一般形式为:类型名 * 函数名(参数列表) 比如下面这个函数,返回一个指向char类型变量的指针int main(){    // 定义一个字符串变量    char str[] = "lmj";

2015-01-22 14:43:47 306

空空如也

空空如也

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

TA关注的人

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