OC语言大总结(上)

根据OC学习的知识点,总结了一下,希望能帮到大家!

作者:韩俊强  未经允许,请勿转载!

关注博主:http://weibo.com/hanjunqiang

第一节类于对象  

类与对象http://blog.sina.com.cn/s/blog_814ecfa90102vtum.html


知识点


注意事项


面向对象编程


OOP(Object Oriented Programming)


面向对象语言


C++,Java,C#,OC,Swift


概念


类,对象,封装,继承,多态...


面向过程编程


分析解决问题的步骤,实现函数,依次调用


面向对象编程


分解问题组成的对象,协调对象间的联系和通信,解决问题.


面向过程以过程为编程中心,面向对象以对象为编程中心.


面向对象编程设计


1.分析涉及到的对象.2.根据功能定义类.3.使用对象的功能完成程序


类和对象


1.类和对象是面向对象的核心.2.类是对象的类型.3.对象是类的实例.4.万事万物皆对象.


OC中类的定义


1.面向对象编程中使用对象完成程序.2.开发中:先定义类,再创建对象,然后适用对象.3.定义类包含两部分:接口部分和实现部分.分开写(1.接口部分:对外声明类的特征和行为.2.实现部分:对内实现行为.)


接口部分


1.接口部分标志:@interface...@end2.作用:声明类的实例变量(特征)和方法(行为).3.包含内容:类名,父类名,实例变量,方法等.


实现部分


1.实现部分标志:@implementation...@end.2.作用:实现方法,即实现类的行为.


类和文件


.h称为接口文件或头文件,.m称为实现文件


创建对象


1.创建对象分两步:分配内存空间和初始化.2.分配内存空间:根据类中声明的实例变量为对象分配内存,并返回首地址.3.初始化:为对象的实例变量设置初始值.


创建对象


+(id)alloc;(+,表示这个方法属于类,只能类执行,id返回值类型,表示任意类型的对象)-(id)int;-表示这个方法属于对象,只能对象执行.id返回值类型,表示初始化完成的对象.


使用对象


指针存储对象的首地址,代指对象.


简单方法


OC中的方法分两种:类方法和实例方法.


类方法


只能类使用.例如:+(id)alloc,注意:类方法中不能使用实例变量.


实例方法:


只能对象使用,例如-init


setter和getter


为实例变量赋值方法称为setter,读取实例变量的方法称作getter(访问器);

第二节继承、初始化方法、遍历构造器

基础语法:http://blog.sina.com.cn/s/blog_814ecfa90102vtul.html

继承:http://blog.sina.com.cn/s/blog_814ecfa90102vtw0.html


知识点


注意事项


继承


面向对象的语言提供了继承语法,能够大大简化代码,把公共实例变量和方法写在父类里,子类只需要写自己独有的实例变量和方法.继承即能保证类的完整,又能简化代码.父类可以有多个子类,子类只可以有一个父类.OC里边继承是单向的,不能相互继承.继承具有传递性,子类能继承父类全部的特征和行为.


继承的特点


OC只允许单继承.没有父类的类称为根类,OC中的根类是NSobject.如果父类的方法不满足子类的需求,子类可以重写父类的方法.继承具有传递性


继承中方法的执行


逐级向上,找到就执行,找不到就崩溃


super


1.super是编译器指令,并非类或者对象.2.作用:给super发消息,执行父类中对应的方法.3.子类可以重写父类的方法,子类既可以有自己的实现,又有父类继承中的实现,如果想使用父类的实现,需要向super发消息.


初始化方法


1.创建对象分两步:分配内存,初始化.2.初始化方法的主要作用是:为某些实例变量赋值.3.初始化方法在整个对象生命周期里只使用一次.3.父类中声明了公共的实例变量.作为父类也应该有自己的初始化方法,为这些公共实例变量赋初值.4.子类定义了除父类公共实例变量外的实例变量,在自身的初始化方法中,优先向super发送init消息,初始化公共变量,初始化成功后,再初始化自身特有变量,从而完成自身全部实例变量的初始化.


初始化过程


1.执行父类中实现的初始化方法(向上递归到NSObject类中的初始化方法).2.从根类NSObject开始执行初始化方法3.判断父类中的初始化是否成功,即self是否存在.4.完成对象的初始化设置,返回对象.5.初始化子类实例变量.


初始化方法特征


1.初始化方法是”—”号方法.2.以init开头.3.可以带0到多个参数.4.返回值是id或者instancetype类型.5.内部实现:先执行super的初始化方法,再初始化自身变量,最后returnself


便利构造器


1.便利构造器在初始化方法的基础上前进了一小步,封装了对象的创建过程.2.便利构造器以”+”方法,返回本类型的实例对象,方法名以类名开头.3.可以有0到多个参数.4.内部实现:封装了alloc和初始化方法,使用起来更加方便.

第三节属性

属性:http://blog.sina.com.cn/s/blog_814ecfa90102vuog.html


日期


任务


setter和getter方法


setter是赋值方法,getter是取值方法


属性


属性是Objective-C2.0定义的语法为实例提供了setter和getter方法的默认实现,能在一定程度上简化程勋代码,并且增增强实例变量的访问安全性


属性的声明


使用@property声明属性,相当于在@interface里声明了两个方法(setter和getter)


属性的实现


使用@synthesize实现属性,相当于在@implementation中实现了两个方法setter和getter


属性的属性


为属性提供了一些关键字用以控制setter,getter的实现细节,这些关键字称为属性的属性(attribue),一共有三大类attribue


属性的属性


第一类:读写性控制(readonly,readwrite)readonly只声明getter方法,无setter方法,readwrite告诉编译器即声明setter又声明getter


nonatomic


程序开发过程中,setter和getter处处都在用,如果使用atomic,需要不断地队setter,getter加锁解锁以保证线程访问安全,会很占用系统资源,降低系统性能.通常设置为nonatomic,某些属性需要线程安全时,才定义为atomic


属性的属性


第三类:语义设置assign,retain,copy,使用assign修饰属性时,setter,getter内部实现是直接赋值


点语法


点语法是Objective-C2.0定义的语法格式,提供了一种便捷的属性访问方式.凡是符合系统默认setter,getter书写格式的方法都可以使用点语法

第四节字符串与数值对象

字符串:http://blog.sina.com.cn/s/blog_814ecfa90102vu8m.html


知识点


注意事项


苹果帮助文档的使用(文档的基本信息)


Inherits from 继承自;

Conforms to 遵循什么协议;

Framework 属于哪个框架 ;

Availability 什么时候可用的; 

Declared in 声明在什么头文件里 ;

Related documents 相关文档; 

Sample code 示例代码


字符串


c语言中,字符串是由char(ASCII)字符构成。 

oc中,字符串是由unichar(unicode)字符构成 

oc中,字符串分为不可变字符串和可变字符串。 

不可变字符串一经创建,内容和长度不可修改可变字符串创建之后,长度和内容可修改。 


不可变字符串的创建


 实例方法:

—initWithString: 

—initWithFormat:

便利构造器: 

+stringWithString:  

+stringWithFormat:


字符串的常用方法


字符串分割 ;

字符串拼接;

字符串替换;

字符串比较


字符串分割


字符串分割:

 -substringToIndex: 

-substringFromIndex: 

-substringWithRange:


字符串拼接


字符串拼接:-stringByAppendingString: 


字符串替换


字符串替换:

—stringByReplacingCharactersInRange:withString:

—stringByReplacingOccurrencesOfString:withString: 


字符串比较


—isEqualToString: 


可变字符串(NSMutableString)


NSMutableString继承于NSStringNSMutableString创建出来的字符串,是一个动态的可变字符串,可以对其进行增删改查.


可变字符串(NSMutableString)的创建


实例方法:
—initWithFormat: 

—initWithString: 

便利构造器: 

+stringWithFormat:

+stringWithString: 


NSMutableString的方法


字符串拼接 —appendString: 

字符串插入—insertString:atIndex: 

字符串删除—deleteCharactersInRange: 


字符串小结


不可变字符串的修改操作,本质就是得到一个新的字符串。 

不可变字符串的修改方法以string开头,有返回值。 

可变字符串的修改方法没有返回值,修改原字符串。 


数值对象的作用


数值对象可以完成标量(int,float,结构体,指针等)与对象类型的相互转换。 


数值对象(NSNumber)常用方法


基本类型(int,float)转换成对象类型; 

对象类型转换成基本类型(int,float)。 

+numberWithInt:

+numberWithDouble: 

—intValue

—doubleValue 


数值对象(NSValue)常用方法


NSValue是NSNumber的父类 

结构体转换为NSValue类型对象 

NSValue类型对象转换为结构体 

+valueWithRange: 

+valueWithPointer: 

—rangeValue

—pointerValue 

未完下接OC大总结(下):

http://blog.csdn.net/qq_31810357/article/details/48968453

关注博主

欢迎学习本文档,未经博主允许,不得私自转载!

时间: 2024-10-29 21:17:34

OC语言大总结(上)的相关文章

OC语言大总结(下)

根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强   未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 上接:http://blog.sina.com.cn/s/blog_814ecfa90102vuu1.html 第五节 数组.字典.集合 字典.集合:http://blog.sina.com.cn/s/blog_814ecfa90102vub9.html 数组:http://blog.sina.com.cn/s/blog_814ecfa9

脚本语言 java vbs-各位大神,请问如何用脚本语言在word上进行连线操作

问题描述 各位大神,请问如何用脚本语言在word上进行连线操作 解决方案 用word录一个宏,看看宏代码

“译见”跨语言大数据渠道生态 上亿市场即将开启

2016年11月18日,2016"赋能译见"渠道招商大会在京圆满落幕.来自全国近二十个领域的上百家企业盛情赴会,共谋跨语言大数据未来发展.会上,中译语通科技(北京)有限公司(以下简称"中译语通")详细介绍了公司战略布局及解读跨语言大数据平台"译见"的渠道政策,并展示了"译见"在新闻.科技.医疗.工业.农业等垂直领域解决方案及智能搜索.实时热点分析等先进服务能力.会议现场,巨大的市场蛋糕及高品质的产品平台吸引渠道商踊跃签约,现场

iOS - OC 语言新特性

前言 相对于 Java,OC 语言是一门古老的语言了,而它又是一门不断发展完善的语言.一些新的编译特性,为 OC 语言带来了许多新的活力.在 Xcode7 中,iOS9 的 SDK 已经全面兼容了 Objective-C 的一些新特 性和新功能.这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的 iOS 系统,如果可以将这些新特性都应用于开发,开发效率和代码质量,相比之前会有一个很大的提升. 1.可选类型检测 在 swift 语言中,通过 ! 和

Java与C++语言在作用域上的差异浅析

Java与C++的编程思想虽然有一定的共同性,但是在很多方面仍然存在着不同 .如两者在作用域上仍然存在着很大的差异.下面笔者就分析一下这两门语言在 作用域上的差异,这里所提到的作用域包括变量作用域和对象作用域. 差异一:变量作用域的不同 如下面这段程序代码是符合C++语言的语法要求的.其可以在C语言下正常运 行.但是其在Java语言平台下编译的时候,就会被告知有错误.其格式.关键字 上面都没有错误.那么错误到底是这么呢?这就关系到变量的作用域. { float y=3.15 { float y=

脸萌一夜走红,很大程度上取决于切中了图形展示和社交工具的点

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 原标题:脸萌一夜走红,很大程度上取决于切中了图形展示和社交工具的点,这两者本身就很容易擦出火花 [IT时代周刊深度观察]不知道大家是否留意,在微信朋友圈有人不停的晒卡通"萌照"?"萌照"还都是和你朋友有点像的可爱卡通头像.这是一款红遍各大社交平台的App的杰作,这款App名叫"MYOT

译见赋能跨语言大数据渠道生态

文章讲的是译见赋能跨语言大数据渠道生态,2016年11月18日,2016"赋能·译见"渠道招商大会在京圆满落幕.来自全国近二十个领域的上百家企业盛情赴会,共谋跨语言大数据未来发展.会上,中译语通科技(北京)有限公司(以下简称"中译语通")详细介绍了公司战略布局及解读跨语言大数据平台"译见"的渠道政策,并展示了"译见"在新闻.科技.医疗.工业.农业等垂直领域解决方案及智能搜索.实时热点分析等先进服务能力.会议现场,巨大的市场蛋糕

OC语言类的本质和分类

OC语言类的深入和分类 一.分类 (一)分类的基本知识 概念:Category 分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告)

语言大数据起航,大数据量级加码

ZD至顶网CIO与应用频道 04月11日 北京消息:权威专家表示,中国每年捕获和产生的数据量将从2012年的364EB增长到2020年的8.6ZB,即年增50%,占全球数据总量比例从13%增至21%.在多语种大数据即跨语言大数据加入计算后,这个数据总量和全球占比,将无法预估. 大数据时代,数据作为一种生产资料,无时无刻不在迭代新价值.单一语种的数据价值已经在世界范围内获得认可,2015年,中国在大数据软件.硬件及专业服务的直接产值超过110亿元.跨语言大数据在数量级上数倍于单一语种大数据,针对跨