OC多文件开发
2016-02-22 08:51
211 查看
OC的基础知识
OC多文件开发
NSString的创建和使用
//注意oc中字符串是以@开头 @”xx”以下4种方式
1创建常量字符串,注意使用“@“符号。
NSString *astring = @”This is a String!”; //后面的是常量,前面的是指针变量
2
NSString *s1 = [NSString new];
s1 =@”jian le ma”;
3
格式化创建字符串(按照指定的格式创建字符串)
NSString *imgName = [NSString stringWithFormat:@”xxxxxx%02d.jpg”,i];
4
用一个已经存在的字符串创建一个新的字符串
NSString *s2 = [[NSString alloc] initWithString:s1];
NSString长度计算方法.
NSString *str = @”ban长”;[str length]; // 4
OC中中文相当于1个字符
UTF-8编码中汉子占3个字节
多文件开发
为什么要使用多文件?在开发当中实现的功能一般会比较复杂, 所以会将类分成声明(.h文件)和实现(.m文件)部分
在.h文件中写成员变量和方法的声明,
在.m文件中写成员变量和方法的实现.
这样写大大提高开发效率, 提高代码的维护性.
文件名就是类名
.h和.m名字必须相同(重名)
快捷键 cmd+n(学会查看快捷键方法) –> Cocoa Class (同时帮我们生成.h和.m)
头文件要记得引入
//#import “”
类方法.
特点:以加号( + )开头,
调用格式: [类名 方法名] [Car run];
注意事项:
类方法可以和实例方法同名, 相互之间互不影响
-(void)eat;
+(void)eat;
类方法可以从父类继承而来,子类可以重写类方法 // ,如description类方法
类方法和实例方法一样在interface里声明, 在implementation里实现。
类方法由类名调用, 实例方法(对象方法)由对象调用。
在类方法里使用了self, self指代的是调用者类
在类方法中不能使用类的成员变量(实例变量/属性)//重点
类方法和对象方法之间不能使用self 相互调用
类方法中调用对象方法
1.对象作为方法的参数传递过来
2.创建一个对象调用对象方法 Person *person = [Person new];
类方法调用类方法
类方法可以调用类方法,但是不要自己调用自己
对象方法同样可以调用对象方法,类方法,但是不能自己调用自己
self的区分
要清楚self在不同的方法里面代表不一样
在对象方法中,self是一个对象
在类方法中,self代表是一个类
总结:
类方法里面可以调用类方法,对象方法.对象方法里面也可以调用类方法,对象方法,但是要注意self代表什么,以及不能用self调用当前方法,否则会出现死循环.
类方法和对象方法的比较
对象方法以减号开头, 可以使用成员变量
类方法以加号开头,不能使用成员变量
类方法使用场景
如果我们调用一个方法,该方法中不需要使用成员变量,那么我们可以将该方法声明为类方法
匿名对象
匿名对象的使用场景: 当对象的方法只调用一次时,可以使用匿名对象来完成。
匿名对象优缺点 :
优点: 可以简化代码,方便方法调用;节省内存空间
缺点: 匿名对象实例化以后,只能正确的使用一次成员变量;
封装:
什么是封装:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
封装的好处:
将变化隔离。(不管里面怎么变,使用者不需要知道)
便于使用。(使用者只需按照一定的方法使用就可以了)
提高重用性。(任何人都可以对已封装好的功能进行操作)
提高安全性。(由于暴露给使用者的只是一些外在的操作环节,而不是里面本质的东西,所以就提高了对他的维护性,也就是安全性)
封装的原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
setter方法的实现
set方法的书写规范:
4.1 set方法一定是一个对象方法
4.2 set方法一定不能有返回值
4.3 set方法必须以set开头
4.4 set之后跟的是 实例变量去掉下划线,并且首字母大写
4.5 set方法一定有参数,而且参数的类型和实例变量的类型一致
4.6 set方法的形参名 一般是 去掉下环线的实例变量名
4.7 形参名不能和实例变量名同名
4.8 set方法实现中,一定要用形参给实例变量赋值
: int _age; 的setter方法
-(void)setAge:(int)age{ _age = age; } [person setAge:10];
get方法书写规范:
1) get方法一定是一个对象方法
2) get方法一定有返回值,返回值的类型和实例变量的类型要一致
3) get方法的方法名 是去掉下环线的实例变量名
4) get方法一定没有参数
5) get方法的实现中,一定是返回实例变量值
: int _age; 的get方法
-(int)age{ return _age; }
setter (设置/赋值) 设置属性不需要返回值 setter之后 对象的属性就被设置值了
get (获取/取值) 获取对象属性的值(返回实例变量的值) get之后 就可以拿到对象属性的值
组合模式
了解就可以了
组合模式:把具有相同基类类型的对象组合到树形结构中,以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
依赖关系:A对象作为B对象的局部变量或是方法形参的,B依赖与A,这时候我们称A与B之间存在一种依赖关系
人坐车回家
[person goHome:car];
关联关系
当一个对象拥有另外一个对象的时候, 当B对象为A对象的成员变量的时候,B对象与A对象之间存在一种关联关系
关联关系是面向对象中最常用一种关系
@interface Person : NSObject { Dog *_dog; //关联关系 }
最近才开始往github上放东西 在公司写的又不能放= = 大家姑且看看吧
github地址: https://github.com/FuThD相关文章推荐
- OC - 9.基于Quartz2D绘制下载进度条(demo)
- oc 的一些概念
- [代码例程] iPhone开发入门(7)--- 从C/C++语言到Objective-C语
- IOS 面试习题 Object-C
- objective-c block 讲解
- IOS求职之OC面试题
- iOS OC和Swift混编
- OC_继承,初始化
- OC 省市区划分
- iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
- OC 自定义 get/set 方法注意点
- OC 书签管理系统
- 编写 Objective-C 代码/掌握基本的编程技能 之 读后笔记
- Swift 和 OC 混编
- 利用UIScrollView实现展示图片的无限滚动及自动滚动
- Objective-C 类,对象,属性,方法
- Objective - C 字符串 数组 字典 集合的基本使用
- 图形上下文解释CGContextSaveGState/CGContextRestoreGState
- Objective-C更改placeholder字体颜色
- Objective-C关键字self和super详解