2014年9月14日

OC中NSArray的使用

摘要: 不可变数组类容器类,管理一组对象类型的数据。元素是有序的,索引值从0开始数组中存储的元素必须是对象,类型任意。创建数组对象,使⽤用实例初始化或便利构造器。获取元素个数。根据索引值获取对象。获取对象在数组中的索引值。 NSString* str=@"today"; Person* p1 = [[Per... 阅读全文

posted @ 2014-09-14 22:55 安琪 阅读(337) 评论(0) 推荐(0)

点语法、property、self注意

摘要: 1.点语法(找出不合理的地方)#import@interfacePerson : NSObject{int_age;}- (void)setAge:(int)age;- (int)age;@end@implementationPerson{int_age;}- (void)setAge:(int)... 阅读全文

posted @ 2014-09-14 22:54 安琪 阅读(333) 评论(0) 推荐(0)

类的本质

摘要: 1.当程序启动时,就会加载项目中所有的类和分类,而且加载后会调用每个类和分类的+load方法。只会调用一次。2.当第一次使用某个类时,就会调用当前类的+initialize方法3.先加载父类,再加载子类(先调用父类的+load方法,再调用子类的+load方法) 先初始化父类,再初始化子类(先调用父... 阅读全文

posted @ 2014-09-14 22:52 安琪 阅读(189) 评论(0) 推荐(0)

自定义构造、description方法、SEL

摘要: 【Objective-C】07-自定义构造方法和description方法// 构造方法:用来初始化对象的方法,是个对象方法,”-"开头// 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值/*重写构造方法的注意点1.先调用父类的构造方法([super init])2.再进行子类内... 阅读全文

posted @ 2014-09-14 22:48 安琪 阅读(426) 评论(0) 推荐(0)

规范思路问题

摘要: //在注释前要留有空格,与注释语句也要留有空格例:int _wheels; // 轮指数=赋值符号左右两边都要留有空格例:_wheels = wheels;.m文件中添加头文件都要用#import相似类方法的的声明或实现放在一起。例:- (void)setX:(int)x;- (int)x;- (... 阅读全文

posted @ 2014-09-14 22:47 安琪 阅读(257) 评论(0) 推荐(0)

成员变量声明类型注意:

摘要: @public : 在任何地方都能直接访问对象的成员变量@private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private,即使声明为@public,若处在单独文件中也是@private)@protected : 可以在当前类及其子类的对象方法中直接访问... 阅读全文

posted @ 2014-09-14 22:46 安琪 阅读(292) 评论(0) 推荐(0)

点语法

摘要: 凡是符合系统默认setter、getter书写格式的方法都可以使⽤用点语 法。#import "Student.h"@implementation Student- (void)setAge:(int)newAge{ age = newAge;}- (int)age{ return age;}@en... 阅读全文

posted @ 2014-09-14 22:45 安琪 阅读(125) 评论(0) 推荐(0)

property、synthesize、id

摘要: 1、@propertyintage;在编译器情况下会自动编译展开为:- (void)setAge:(int)age;- (int)age;2、同理:@propertyint_age;在编译器情况下会自动编译展开为:- (void)set_age:(int)age;- (int)_age;一般情况,使... 阅读全文

posted @ 2014-09-14 22:44 安琪 阅读(173) 评论(0) 推荐(0)

内存(MRC)

摘要: 一、计数器的基本操作1> retain : +1,方法返回的是对象本身2> release :-13> retainCount : 获得计数器4> dealloc* 当一个对象要被回收的时候,就会调用 * 一定要调用[super dealloc],这句调用要放在最后面2.概念1> 僵尸对象 :所占... 阅读全文

posted @ 2014-09-14 22:43 安琪 阅读(440) 评论(0) 推荐(0)

ARC

摘要: ARC的判断准则:只要没有强指针指向对象,就会释放对象。1、ARC特点:1>不允许调用release、retain、retainCount2>允许重写dealloc,但是不允许调用[super dealloc]3>@property的参数strong:成员变量是强指真(适用于OC对象类型)weak... 阅读全文

posted @ 2014-09-14 22:42 安琪 阅读(163) 评论(0) 推荐(0)

几个输出注意点

摘要: Person*p = [[Personalloc]init];// 指针变量的地址NSLog(@"%p", &p);// 对象的地址NSLog(@"%p", p);// NSLog(@"%@", p);2、NSLog(@“%s\n”,_func_);输出当前函数名3、NSLog(@“%d”,_LI... 阅读全文

posted @ 2014-09-14 22:41 安琪 阅读(119) 评论(0) 推荐(0)

Xcode

摘要: 更改Xcode的模板:Xcode.app ——>显示包内容(右击)——>contents——>Developer——>Library——>Xcode——>Templates——>Project Templates——>Mac——>Application——>Command Line Tool——>T... 阅读全文

posted @ 2014-09-14 22:40 安琪 阅读(225) 评论(0) 推荐(0)

Category、Extension

摘要: Category,分类,类目。主要作⽤用是为没有源代码的添加方法,例系统自带的NSString。通过Category添加的方法会成为原类的一部分。从⽽而达到扩展一 个类的功能。CategoryNSString+SayHi.h文件@interface NSString (SayHi)- (void)h... 阅读全文

posted @ 2014-09-14 22:39 安琪 阅读(189) 评论(0) 推荐(0)

iOS内存管理

摘要: 内存管理分为:MRC、ARCMRC:手动管理引用计数器ARC:自动管理引用计数器ARC的释放原理//是MRC,会引起计数器上变化。只要没有强指针指向对象,就会释放对象。+1:retain、alloc、copy-1:release(立即-1)、autorelease(遇到释放池)操作引用计数器原则:... 阅读全文

posted @ 2014-09-14 22:38 安琪 阅读(148) 评论(0) 推荐(0)

简单OC程序

摘要: Foundation框架头文件的路径1> 右击Xcode.app --> 显示包内容2> Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Fr... 阅读全文

posted @ 2014-09-14 22:36 安琪 阅读(325) 评论(0) 推荐(0)

c语言函数注意点

摘要: 返回值的基本概念、return的作用 return1>void可以省略return2>可以多次使用return3>return后面不能有其他语句4.函数的弱语法注意,如果没有写返回值类型,默认是int如果写了返回值,可以不返回 可以调用一个没有定义过的函数 返回值数字含义: 0:正常... 阅读全文

posted @ 2014-09-14 22:33 安琪 阅读(435) 评论(0) 推荐(0)

注意

摘要: printf("--%s--",str);防止数组中有回车漏掉设置反复使用的变量时,一定要注意输入它时它的内存中所存的数值考虑对操作的作用。注意:在写题之前,注意先分析思路,然后再写题函数参数传递:值传递(实参与形参之间是传值的关系)地址传递引用传递#includeintsum(inta,intb... 阅读全文

posted @ 2014-09-14 22:32 安琪 阅读(187) 评论(0) 推荐(0)

函数指针、回调、动态排序、返回函数指针

摘要: 1、函数指针定义及初始化:int (*p)(int,int)=NULL;p=maxValue;//将函数maxValue的地址传给p或(*p)=maxValue;2、函数回调:int getValue(int a,int b,int (*p)(int,int));//函数指针作为getValue的... 阅读全文

posted @ 2014-09-14 22:31 安琪 阅读(179) 评论(0) 推荐(0)

const

摘要: const只读变量,具有不可变性注意:const修饰的只读变量必须在定义的同时初始化(case语句后面可以是修饰的只读变量,或是整型或字符型的常量或常量表达式)可修饰1、一般变量int const i=2;或const int i=2;2、修饰数组int const array[5]={1,2,3... 阅读全文

posted @ 2014-09-14 22:02 安琪 阅读(150) 评论(0) 推荐(0)

Switch

摘要: 整个default语句都可以舍掉多个case可以运⾏行⼀一个语句块case中定义变量需要加{}case0:{intb =20+ a;break;}1、break用在switch...case中⽤用于结束某个case,然后执⾏行switch之外 的语句。这是因为跳转是在进入switch是计算出的,而不... 阅读全文

posted @ 2014-09-14 21:58 安琪 阅读(149) 评论(0) 推荐(0)

字符串

摘要: 字符数组的两种定义方式: char c[10] = {‘i’ , ‘P’ , ‘h’ , ‘o’ , ‘n’ , ‘e’}; char c[10] = “iPhone” ;字符串函数strlen()计算字符串的长度strcpy()字符串拷贝strcat()字符串拼接strcmp(... 阅读全文

posted @ 2014-09-14 21:57 安琪 阅读(162) 评论(0) 推荐(0)

存储区

摘要: 栈区:int a=3;堆区:malloc(255) (所占内存最大)静态区:static float h=1.36;常量区“lanou"代码区:void function(){…}内存地址,从上到下,内存地址越来越小。栈内存分配由高到低(栈底是高位内存,栈顶是低位内存),先进后出错误使用:ch... 阅读全文

posted @ 2014-09-14 21:56 安琪 阅读(171) 评论(0) 推荐(0)

BOOL、sizeof

摘要: BOOL使用前需要声明#include(这个头文件定义了bool,true,false等宏)int a[5];sizeof(a[5]),sizeof是关键字,求值是在编译时,sizeof(a[5])并不会报错,这个值并不存在,但是这里并没有真正去访问a[5]这个值,而是仅仅根据数组元素的类型来确定其... 阅读全文

posted @ 2014-09-14 21:55 安琪 阅读(656) 评论(0) 推荐(0)

结构体

摘要: 1、定义结构体类型形式:struct 结构体名{ 类型名1 成员名1; 类型名2 成员名2; …… 类型名n 成员名n; };2、定义结构体变量的三种方式:1>先定义结构体类型,再定义变量例:struct Student { char *name; int age;};struct Studen... 阅读全文

posted @ 2014-09-14 21:52 安琪 阅读(267) 评论(0) 推荐(0)

指针

摘要: 任何指针都占用8个字节的存储空间清空指针p=0;p=NULL;// 清空指针后,不能再间接访问其他存储空间//*p = 100.7;错误数组名相当于指针常量,不可被更改int与const哪个放前面都一样相同const int ic=20;int const ic=20;相同:const int *p... 阅读全文

posted @ 2014-09-14 21:51 安琪 阅读(150) 评论(0) 推荐(0)

关于scanf("%c",&ch)直接跳过的问题

摘要: 有时候scanf("%c",&ch)本应该阻塞等待用户输入一个char型数据的,但为什么会跳过呢?例:在该程序段中,intyear;printf("请输入一个年份:\n");scanf("%d",&year); //setbuf(stdin,NULL);//或者直接用getchar();//在键盘输... 阅读全文

posted @ 2014-09-14 19:54 安琪 阅读(2882) 评论(0) 推荐(0)

指针与字符串

摘要: 正确char *s;s=“MJ”;错误:char s[10];s="MJ”;因为s是个常量,代表数组的首地址,不能进行赋值运算。1、char *s=“MJ”;3、*s="like”;第3行代码相当于把字符串"like"存进s指向的那一块内存空间,由第1行代码可以看出,s指向的是"mj"的首字符'm'... 阅读全文

posted @ 2014-09-14 19:53 安琪 阅读(138) 评论(0) 推荐(0)

数字运算、ASCII

摘要: num20 = dollar/20;num10 = (dollar -20*num20)/10;num5 =(dollar-20*num20-10*num10)/5;//可以写为num5 = (dollar%10)/5;num1=dollar-20*num20-10*num10-5*num5;//... 阅读全文

posted @ 2014-09-14 19:32 安琪 阅读(190) 评论(0) 推荐(0)

指针总结

摘要: 一、指针变量的定义1.格式:变量类型 *指针变量名;2.举例:int*p; char*p2;3.注意:定义变量时的*仅仅是指针变量的象征二、利用指针变量简单修改其他变量的值1.指向某个变量inta;int*p;p = &a;或者int*p = &a;2.修改所指向变量的值*p =10;3.在函数内... 阅读全文

posted @ 2014-09-14 19:26 安琪 阅读(120) 评论(0) 推荐(0)

字符串查找相同字母代码

摘要: intchar_contains(charstr[],charc){//方法1:intlen=strlen(str);for(inti=0; i<len; i++) {if(str[i]==c) {return1; } }return0;//方法2:inti=0;while(str[i]!='\0... 阅读全文

posted @ 2014-09-14 19:24 安琪 阅读(300) 评论(0) 推荐(0)

数组

摘要: 初始化方式:inta[3] ={10,9,6};inta[3]={10,9};inta[]={11,7,6};inta[4]={[1]=11,[0]=7};常见错误:inta[];int[4]a;inta[b]; a[10]=0; a={10,11}; a[4]={10,9,8,5};//只有在定... 阅读全文

posted @ 2014-09-14 19:23 安琪 阅读(138) 评论(0) 推荐(0)

作用域问题代码

摘要: 作用域问题if#includeintmain(){inta =20;intscore = a +100;printf("%d\n", score);120 {intscore =50; { score =10;printf("%d\n", score);10 } a =10; } { score =... 阅读全文

posted @ 2014-09-14 19:22 安琪 阅读(105) 评论(0) 推荐(0)

开篇、注释、基本数据类型、常量变量、命名

摘要: command +""内容进入头文件内容几行一起注释选中command+/新建工程(选中Xcode):command+shift+N// 注释,在编译时忽略作用: 1>被注释的代码不会参与编译l注释是写给人看的,不是给计算机看的。计算机怎么可能看得我们写的中文嘛。因此,当编译程序的时候,并不会将... 阅读全文

posted @ 2014-09-14 19:19 安琪 阅读(118) 评论(0) 推荐(0)

位运算

摘要: 1、&按位与1>功能:只有对应的两个二进位均为1时,结果位才为1,否则为0.例:9&5=1001&101=1,因此9&5==12>规律:二进制中,与1相&就保持原位,与0相&就为0.1. 2>|按位或 1>功能只要对应的二个二进位有一个为1时,结果位就为1,否则为0。2>举例:比如9|5,其实就... 阅读全文

posted @ 2014-09-14 19:18 安琪 阅读(113) 评论(0) 推荐(0)

函数

摘要: 返回值的基本概念、return的作用 returnl1>void可以省略returnl2>可以多次使用returnl3>return后面不能有其他语句4.函数的弱语法l如果没有写返回值类型,默认是intl如果写了返回值,可以不返回l可以调用一个没有定义过的函数 返回值: 0:正常退出... 阅读全文

posted @ 2014-09-14 19:17 安琪 阅读(117) 评论(0) 推荐(0)

printf不同格式表示法

摘要: 格式代码AABCABCDEFGH%SAABCABCDEFGH%5S####A##ABCABCDEFGH%.5SAABCABCDE%5.5S####A##ABCABCDE%-5SA####ABC##ABCDEFGHPrintf格式化字符串格式代码1-1212345123456789%d1-121234... 阅读全文

posted @ 2014-09-14 19:14 安琪 阅读(2419) 评论(0) 推荐(0)

运算符(赋值、自增自减)、表达式、语句、优先级表

摘要: 赋值运算符赋值运算符左边的项目必须是一个变量的名字。例:2002 = BMW;错误1、乘除运算符高于加减运算符,运算符优先级相同由左向右。2、赋值运算符优先级仅高于逗号运算符,结合方向从右到左。注意:赋值运算符、条件运算符与单目运算符运算顺序从右到左,其他运算符从左到右。++1、int a = 1;... 阅读全文

posted @ 2014-09-14 19:12 安琪 阅读(2478) 评论(0) 推荐(0)

逻辑(if)、关系、数字、条件运算符

摘要: if语句if-else if-elseif(a==0){1}else if (a>0){2} else{3}特点:1、2、3只有一个括号会被执行陷阱1、if(a!=0) { a不是0;} else {a是0;}错误if (a);{ }if (a=0) 应为a == 0;if(10)inta =9;应... 阅读全文

posted @ 2014-09-14 17:57 安琪 阅读(831) 评论(0) 推荐(0)

scanf

摘要: 1、在使用scanf 函数进行输入时,要对变量取地址,使用&1>变量实例intb =10;inta =20;l1>内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大l2>每个变量都有地址:第一个字节的地址就是变量的地址2、在该函数的格式化中,不能添加除格式化外的内容scanf注... 阅读全文

posted @ 2014-09-14 17:55 安琪 阅读(271) 评论(0) 推荐(0)

赋值标志量时注意点

摘要: 设置标志时,要随时注意该标志的状态变化状况,注意一定要确保该标志每次计算时可以回到最初状态。例: int test=1; do {test =1;//注意一定不可以遗忘printf("请输入年月日(中间以空格符间隔)\n");scanf(" %d%d%d",&year,&month,&day)... 阅读全文

posted @ 2014-09-14 17:54 安琪 阅读(120) 评论(0) 推荐(0)

随机数、continue、break

摘要: arc4random()—返回一个随机数(无符号整型)。如果要随机一个[a, b]范围内的整数公式:arc4random() % (b - a + 1) + a;#include//随机数头文件设定最大值与最小值时应注意。continue在循环中的作⽤用:结束本次循环(continue后⾯面的代码不... 阅读全文

posted @ 2014-09-14 17:53 安琪 阅读(136) 评论(0) 推荐(0)

while 、do...while 、for

摘要: 1、while特点:只有条件成立才会执行循环体。while陷阱:while(条件);即直接加分号2、do while特点:一定会执行一次循环体3、for语句l初始化等可以是多句(把printf放到for的括号中)始化语 陷阱 1> 死循环for(;;); 2> for循环... 阅读全文

posted @ 2014-09-14 15:50 安琪 阅读(178) 评论(0) 推荐(0)

指针相关

摘要: 1、对形式参量使用 const函数之所以可以改变数组的内容,是因为函数使用了指针,从而能够直接使用原始数据。使用 const 并不要求原始数据是固定不变的;只是说明函数在处理const所定义数组时,应把数组当做是固定不变的。 如果函数想修改数组,那么在声明参量时就不要使用 const ;如果函数不... 阅读全文

posted @ 2014-09-14 15:49 安琪 阅读(125) 评论(0) 推荐(0)

枚举类型、联合类型

摘要: 1联合union 联合 (union) 是一个能在同一个存储空间里(但不同时)存储不同类型数据的数据类型。 编译器为联合分配足够的空间保存所描述的可能性的最大需要。 下面是一个带有标记的联合模板例子: unionhold{ //带有标记的联合的模板 intdigit; ... 阅读全文

posted @ 2014-09-14 15:48 安琪 阅读(290) 评论(0) 推荐(0)

printf与scanf的返回值、注意点

摘要: printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符)。scanf()函数返回成功读入的项目的个数。即在下面程序中scanf的返回值为1。如果没有读取任何项目(如它期望一个数字但是出入了一个非数字字符... 阅读全文

posted @ 2014-09-14 15:41 安琪 阅读(3889) 评论(0) 推荐(0)

导航