ImageVerifierCode 换一换
格式:DOCX , 页数:83 ,大小:8.48MB ,
资源ID:10020171      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10020171.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ObjectiveC学习笔记.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ObjectiveC学习笔记.docx

1、ObjectiveC学习笔记-OC基础语法标示符:OC语言中对各种变量、方法和类等要素命名时使用的字符序列称为标示符。OC标示符有如下命名规则:1. 标示符由字母、下划线“_”、美元“$”和数字组成2. 标示符必须以字母、下划线、美元符号开头3. OC标示符大小写敏感,长度无限制约定俗成:OC标示符选取要“见名知意”,并且不能与OC中保留字重名。 合法标示符:ZhangSan、Dog、_988、$as_34d 非法标示符:if、GirL*#、sad90、34_sdf关键字: OC中一些具有特定含义的,系统专门使用的字符串为“保留字”,或者叫“关健字”(keyword) OC中的关键字全部都是小

2、写int、double、struct、break、long、aout、switch、case、enum、register、typedef、char、extern、return、union、const、float、short、unsigned、continue、for、signed、void、default、goto、sizeof、volatile、do、while、static、if、elseOC常量: OC中的常量值用字符串表示,区分不同的数据类型1. 如整型常量:34562. 实型常量:3.14159263. 字符常量:a4. 逻辑常量:ture、false5. 字符串常量:”hello

3、iphone”注意:区分字符常量和字符串常量OC变量: OC变量是程序中最基本的存储单元,基要素包括变量名,变量类型和作用域。 Type varName =value; 例如: Int i=580;float f = 12.12f;Double d = 0.795; NSString *s = ”hello iphone”; 从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。程序的执行过程1. Load代码到内存区2. 从Main函数开始执行3. 执行过程中的内存管理OC变量的分类按被声明的位置

4、划分: 局部变量:方法或语句块内部定义的变量int main(int argc, char * argv) autoreleasepool int i= 100; NSLog(i=%d,i); for (int i=0; i10; i+) Nslog(i val:%d,i); 实例变量:方法外部、类的内部定义的变量 interface Person : NSObject int age; int sex;end按所属的数据类型划分: 基本数据类型变量 指针数据类型变量OC局部变量与成员变量 方法体内部声明的变量(包括形参)称为局部变量: 方法体内部是指与方法对应的大括号内部 方法体外,类体内声

5、明的变量为“实例变量”或者“成员变量”implementation Person-(void)getAge int a; int b=a+5;/编译警告,变量a还未被初始化 float c=2.8;endOC数据类型基本数据类型:数值型:整数类型 int浮点型 float,double字符串(char)布尔型空类型(void)指针数据类型: 类(class)idC和OC的基本数据类型int: 声明整型变量 short: 声明短整型变量或函数double: 声明双精度变量 sigend: 声明有符号类型变量float: 声明浮点型变量 struct: 声明结构体变量char: 声明字符型变量 u

6、nion: 声明共用体(联合)数据类型id: 通用的指针类型 unsigend:声明无符号类型变量enum: 声明枚举类型 void: 声明函数无返回值或无参数long: 声明长整型变量或函数数据类型格式化说明符数据类型OC关键字格式说明引导符数据类型OC关键字格式说明引导符整型int%d、%i浮点型float%f短整型short int%hd、%hi双精度型double%f长类型long int%ld、%li长双精度类long double%lf无符号短整型unsigned int%u无短整型unsigned short%hu无符号长整形unsigned long%lu整数类型Oc中整数类型

7、用int表示,格式化符号用%i或d%来表示比如:int a=100;Oc 语言的整型常量默认为int型,声明long型常量可以后加l或L, 如:int b=600; /正确 Long c=88888888888L;类型占用存储空间值域范围Byte1个字节-128127Short2个字节-215215-1Int4个字节-231231-1long8个字节-263263-1浮点类型浮点类型的变量可以存储包括小数的值oc中有两种浮点类型 float 有效数字为67位,格式化说明符号用%f表示 double 有效数字为1516位,格式化说明符号用%f,%e或%g表示oc中浮点型常里默认为double型,

8、如果要声明一个常量为float,在数字的后面加f或F。double m= 3.14159; /正确 float f=3.14f;下面列出oc的各种浮点类型类型占用存储空间值域范围Float4字节-3.403E38Double8字节-1.798E3081.798E字符串charchar型数据用来表示通常意义上的“字符”,格式化说明符用%c表示字符常量为用单引号括起的单个字符,例如:char acher=a; char b=0; char cChar=苹; 值域范围:-128127“n”,oc编译器把这个当作单个字符unsigned char 值域范围:0255oc字符采用Unicode编码,每个

9、字符占两个字节,因而可用十六进制编码形式表示例如: Char c1=u0061; 注:Unicode是全球语言统一编码char类型(ASCII码)值符号值符号值符号0空字符34,91(32空格45-9233!46.9334“47/9435#48570995-36$58:9637%59;97122az38&6012541)63?12642*64127DEL(Delete键)43+6590AZ逻辑型BooleanBoolean类型指的是用于存储真值和假值的变量,一般用于程序流程控制。Boolean类型数据允许取值true或false,也可以是0或非0的整数替代true和false,这点和java语

10、言不同。实例:Boolean flag=true;If(flag) NSLog(”Hello iPhone”);限定词long int:声明变量xx为long的整型变量。格式化字符为%li,如:long int a;long long int:声明变量xx为long long的整型变量,格式化符%lli,如:long long int b;long double:跟int基本相同;unsigned int:声明无符号的整型变量。如:unsigned int c;signed int:声明有符号的整型变量。如:signed int d;void类型告诉编译器没有任何范围类型的值不能像其它数据类型

11、一样来声明变量例如:void i=10;/错误Void 通常与方法一起搭配使用,比如:-(void) test/code;id 类型Id类型是oc中独有的数据类型,它可以存储任何类型的对象,从某种意义上说,它就是一般的对象类型。将number声明为id类型的变量。如:id number格式化说明符:%pDataType /基本数据类型 int i=10; float f=2.12f; double d=34.123e+11; char c=x; NSLog(i:%d,i); NSLog(f:%.2f,f); /float类型保2位小数 NSLog(d:%e,d); NSLog(c:%c,c);

12、 /打印x对应的ASCII值 NSLog(ASCII c%d,c); /120 /打印基本数据类型所占用的字节 NSLog(sizeOf i%ld,sizeof(i); NSLog(sizeOf f%ld,sizeof(f); NSLog(sizeOf d%ld,sizeof(d); NSLog(sizeOf c%ld,sizeof(c);基本数据类型转换作业:加、减、乘、除Boolean flag=true; while (flag) char i; float number1,number2; printf(a表示加法:n); printf(b表示减法:n); printf(c表示乘法:n

13、); printf(d表示除法:n); printf(q表示退出:n); scanf(%c,&i); switch (i) case a: printf(请输入第一个数:n); scanf(%f,&number1); printf(请输入第二个数:n); scanf(%f,&number2); printf(%.1f + %.1f %.1fn,number1,number2,number1+number2); break; case b: printf(请输入第一个数:n); scanf(%f,&number1); printf(请输入第二个数:n); scanf(%f,&number2);

14、printf(%.1f - %.1f %.1fn,number1,number2,number1-number2); break; case c: printf(请输入第一个数:n); scanf(%f,&number1); printf(请输入第二个数:n); scanf(%f,&number2); printf(%.1f * %.1f %.1fn,number1,number2,number1*number2); break; case d: printf(请输入第一个数:n); scanf(%f,&number1); printf(请输入第二个数:n); scanf(%f,&number

15、2); printf(%.1f / %.1f %.1fn,number1,number2,number1/number2); break; case q: flag=false; printf(已经退出n); break; default: break; OC类的声明interface Person : NSObject /实例变量声明 int idetify; int age;/方法声明-(id)initWithAge:(int)_age identify:(int)_identify;-(int)getIdentify;-(int)getAge;-(void)setAge:(int)_ag

16、e;endOC类的实例变量OC的方法声明OC中方法的调用类的实现implementation Person-(id)initWithAge:(int)_age identify:(int)_identify if (self=super init) age=_age; idetify=_identify; return self;-(int)getIdentify return idetify;-(int)getAge return age;-(void)setAge:(int)_age age=_age;endOC面向对象的基本概念指针对象的创建和使用类与对象的关系对象的初始化初始化方法的实

17、现指定初始化方法内存分析(1)#import Person.hint main(int argc, const char * argv) autoreleasepool / insert code here. NSLog(Hello, World!); /对象创建并初始化 / Person *person; /nil / person=Person alloc init; /0x100102d40 / NSLog(person:%p,person); /对象创建并初始化,内存分析 Person *person=Person allocinitWithAge:30 identify:321123

18、; NSLog(person Age=%d,person getAge); int age=28; person setAge:age; NSLog(person Age2=%d,person getAge); person setAge:+age; NSLog(person Age3=%d,person getAge); NSLog(person栈内存地址:%p,person); return 0;约定俗称的命名规则类名首字母大写变量名和方法名首字母小写使用驼峰标示内存分析(2)/ Person.h/ PersonAlloc/ Created by LCS on 14-4-16./ Copy

19、right (c) 2014年 LCS. All rights reserved.#import interface Person : NSObject /实例变量声明 int idetify; int age;/方法声明-(id)initWithAge:(int)_age identify:(int)_identify;-(int)getIdentify;-(int)getAge;-(void)setAge:(int)_age;-(void)changeAge:(int)_age;-(void)changeInfo:(Person *)_person;-(void)changed:(Pers

20、on *)_person;end/ Person.m/ PersonAlloc/ Created by LCS on 14-4-16./ Copyright (c) 2014年 LCS. All rights reserved.#import Person.himplementation Person-(id)initWithAge:(int)_age identify:(int)_identify if (self=super init) age=_age; idetify=_identify; return self;-(int)getIdentify return idetify;-(i

21、nt)getAge return age;-(void)setAge:(int)_age age=_age;-(void)changeAge:(int)_age _age=38;-(void)changeInfo:(Person *)_person _person=Person alloc initWithAge:22 identify:894455656; NSLog(_person:%p age:%d,_person,_person getAge);-(void)changed:(Person *)_person _person setAge:22;end/ main.m/ PersonA

22、lloc/ Created by LCS on 14-4-16./ Copyright (c) 2014年 LCS. All rights reserved.#import #import Person.hint main(int argc, const char * argv) autoreleasepool / insert code here. NSLog(Hello, World!); Person *p1=Person allocinitWithAge:30 identify:3243242312; int age=20; Person *p2=Person allocinitWit

23、hAge:28 identify:455656231; /age的值不变 p1 changeAge:age; NSLog(age:%d,age); /p1的值不变 p1 changeInfo:p1; NSLog(behind _person:%p age:%d,p1,p1 getAge); /真正改变p2对象的值 p1 changed:p2; NSLog(p2 age:%d,p2 getAge); return 0;self和super关键字 self指的是类对象本身 super是父类对象本身 self用来调用本类对象的方法 super调用父类的方法class和#importImport会包含

24、这个类的所有信息,包括实体变量和方法,而class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。在头文件中,一般只需要知道被引用的类的名称就可以了。不需要知道其内部的实体变量和方法,所以在头文件中一般使用class来声明这个名称是类的名称。而在实现类里面,因为会用这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。如果有循环依赖关系,如A-B,B-A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用class在两个类的头文件中相互声明,则不会有编译错误出现。所以,一般来说,

25、class是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。在实现个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要importclass用在.h文件里#import用在.m文件里设置器和访问器#import interface Person : NSObject int myNumber;/实例变量-(int)myNumber;-(void)setMyNumber:(int)_number;-(void)printInfo;end#import Person.himplementation Person/get方法-(in

26、t)myNumber return myNumber;/set方法-(void)setMyNumber:(int)_number myNumber=_number;/打印本类的信息-(void)printInfo NSLog(Person number is : %d,myNumber);end#import #import Person.hint main(int argc, const char * argv) autoreleasepool / insert code here. NSLog(Hello, World!); Person *person=Person alloc init; person setMyNumber:100; NSLog(Person number : %d,person myNumber); return 0;Property属性oc2.0简化设置器和访问器。注意两个关健字“property” “synthesize”#import interface Person : NSO

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1