OC的总结 ***希望对大家有帮助*** ---高小杰

1.  NSLog           是Foundation提供的一个输出函数,它的功能非常强大,不仅可以输出字符串,还可以输出各种对象,到后面程序还会见到大量的使用NSLog()函数。

2.  NS          是一个前缀,Cocoa对其所有函数、常量、类型前面都会增加“NS”前缀,该前缀用于区分该函数来自Cocoa,而不是来自其它程序包

3.常用扩展名

.c   C语言的源程序

.cpp  .cc    C++的源程序

.h    头文件

.m   oc源程序

.mm  oc++源程序

.o  .out     c,c++,oc编译后生成的文件

4. Cocoa框架包括Foundation和Application Kit(简称AppKit)。

5. 创建对象语法:[[类名 alloc] 初始化方法]

6. 方法类型标示(返回值类型)方法名:(参数类型)参数

例如:

- (NSArray *)arrayByAddingObject:(id)anObject;

+ (instancetype)arrayWithObject:(id)anObject;

7. [调用者 方法名:参数]

8. Self指的是类对象本身,Self用来调用本类对象的方法

9. id类型泛指任意类型,程序在运行时系统会动态检测变量的实际类型

10.封装访问控制符

@private     只允许在本类中访问,私有变量

@protected    允许在本类和子类中访问

@public       允许在任意地方访问

@package      允许在同一映像中访问

访问级别从小到大:

@private   --→@package = @protected  --→@public;

11.  Set方法对实例变量进行赋值

Get方法获取实例变量的值

12.合成存取方法

使用@property 定义属性,使用@synthesize声明属性

13.合成存取方法特殊指示符

· Atomic  原子性,考虑线程安全

· Nonatomic  非原子性,不考虑线程

· readOnly  只有get方法,没有set方法

· Readwrite 系统合成set,get方法

· Retain 引用计数加一

· Strong   强引用

· Weak   弱引用

14. 点语法是一种简化写法,本质依然是调用set,get方

15. KVC: 键值编码:允许以字符串形式间接操作对  象的属性。

setValue:  forKey: 为指定属性设置值

valueForKey: 获取指定属性的值

16.  处理不存在的key

· 重写setValue: forUndefinedKey: 方法

· 重写valueForUndefinedKey:方法

17.     处理nwil值

· 重写setNilValueForKey:方法

18 . 调用setValue:  forKeyPath: 方法

调用valurForKeyPath:方法

19.  kvo: 键值监听:

· addObsever: forKeyPath:options:context:

注册一个监听

· removeObeseverForKeyPath:

移除一个监听

· 重写observerValueForKeyPath:ofObject:change:context方法

20. 子类可以通过继承获得父类的全部成员变量和方法

21.子类重写父类的方法

· 子类包含与父类同名方法的现象被称为方法重写;

· 注意:

· 方法名和方法中的形参都需要完全相同;

· 子类调用方法时优先级比父类高

22.OC中只支持单继承,共性的东西放在父类中,个性的东西放在子类中。

23. super用于限定该对象调用它从父类继承得到的属性和方法

24. OC中的包装类主要有NSNumber和NSValue

25. 打印对象:需要重写父类的description方法,是一个‘自我描述’的方法

26. ==和isEqual区别:

· 对象在内存中的地址是唯一的,==两边如果是基本数据类型,则判断内容        是否相同,如==两边是对象,则判断指向该对象的指针是否相同,即是否为同一对 象

· isEqual判断对象内容是否相同

27.     NSString :字符串

比较字符串:

· 测试字符串内容是否相同:isEqualToString:

· 测试字符串是否为同一个对象:==

· 比较字符串大小:caseInsensitiveCompare:

· 字符串替换:stringByReplacingOccurrencesOfString:

· 判断字符串是否以*开头:hasPrefix:

· 判断字符串是否以*结尾:hasSuffix:

· 判断字符串长度:length;

· 全部大写:uppercaseString;

· 全部小写:lowercaseString;

· 首字母大写,其他字母变小写:capitalizedString;

· 转换成BOOL类型:boolValue

· 转换成浮点型:floatValue

· 转换成数组:componentsSeparatedByString;

//components组件 内容

截取字符串

· 从开头一致截取到指定的位置,但不包括该位置的字符:(指定位置,但是不包括)

subStringToIndex:

· 从指定位置开始(包括指定位置字符),并包括之后的全部字符:

subStringFromIndex;

· 截取一个范围内的字符:

NSRange;

拼接字符串

·       stringByAppendingFormat:

· stringByAppendingString:

28.   可变字符串

  • 插入字符串:insertString:

x,y,是两个参数,x是坐标,y是长度。

  • 删除字符串:deleteCharactersInRange:NSMakeRange(x,y)
  • 替换字符串:replaceCharactersInRange:NSMakeRange(x,y)
  • 添加字符串:appendString:

appendFormat:

?

29.  NSOrderedSame:相等;

NSOrderedDescending:降序;

NSOrderedAscending : 升序;

30.   不可变数组  NSArray;

  • 获取数组中得元素个数:count;
  • 根据下标访问对象:objectAtIndex;
  • 在原来的数组上追加对象,返回一个新的数组对象:arrayByAddingObject:
  • 用指定字符串将数组中得元素链接起来:componentsJoinedByString:
  • 数组中是否包含某对象:containsObject:
  • 查询指定对象在数组中得元素,如果没此元素,返回NSNotFound:       indexOfObject:
  • 获取数组中最后一个元素:lastObject:

31.集合排序:

sortedArrayUsingComparator:

sortedArrayUsingFunction: context:

sortedArrayUsingSelector:

32.可变数组——NSMutableArray

  • 向数组中添加一个元素:addObject:
  • 向数组中指定下标插入元素:[ insertObject:atIndex:]
  • 移除最后一个元素:removeLastObject:
  • 移除指定元素:removeObject:
  • 移除指定下标的元素:removeObjectAtIndex:
  • 向数组中添加数组:addObjectsFromArray:
  • 替换指定的下标元素:replaceObjectAtIndex: withObject:
  • 移除所有对象:removeAllObjects:

33.在foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序的,同一个对象只能保存一个,并且它也可分为可变和不可变的集合对象(可变集合对象,NSMutableSet)

  • ——-NSSet:不可变集合的常用方法:
  • 集合中对象的个数:count:
  • 以数组的形式返回集合中所有的对象:allObjects;
  • 返回集合中得任意一个对象:anyObjec;
  • 集合中是否包含内容为2的字符串对象,如果包含返回YES,否则返回NO:containsObjec:@“2”;
  • 判断两个集合中是否存在有相同的元素,如果有返回YES,否则返回NO:intersectsSet:
  • 判断两个集合中是否存在有相同的元素,如果匹配返回YES,否则返回NO:

isEqualToSet:

  • 判断集合1是否是集合2的子集合,如果是返回YES,否则返回NO:isSubsetOfSet:
  • 集合中减法:minusSet:
  • 交集:intersectSet:
  • 并集:unionSet:
  • 给集合重新赋值:setSet:

34.(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合。存放的是键值对,类似于Java的Map。正如,我们在字典里查找单词的定义一样。通过(key键),查找相应的(value值),key通常是字符串对象,也可以是其他任意类型对象。在一个字典对象中,key的值必须是唯一的。此外,字典对象的键和值不可以为空(nil),如果需要在一个字典对象中表示一个空值,可以使用NSNull对象。

  • 字典的初始化
  • 以一个元素初始化:dictionaryWithObject:
  • 初始化多个元素:dictionaryWithObjectsAndKeys:
  • 初始化新字典,新字典包含其他的字典:dictionaryWithDictionary:
  • 以文件内容初始化字典:dictionaryWithContentsOfFile:
  • 对字典的key值排序:

keysSortedByValueWithOptions: usingComparator:

keysSortedByValueUsingSelector:

keysSortedByValueUsingComparator:

  • 可变字典—NSMutableDictionary
  • 它继承自NSDictionary

35.Cocoa中提供了NSPredicate类,指定过滤器的条件,将符合条件的对象保留下来。

  • 运算符号的加入,谓词不区分大小  与:&& , AND;或 ||, OR
  • BEGIN SWITH 检查某个字是否以**开头
  • ENDSWITH 检查某个字符是一**结尾
  • CONTAINS 检查包含某个字符
  • 模糊查询:—-Like  检查包含某个字符

36.    顺序枚举器:objectEnumerator

逆序枚举器:reverseObjectEnumerator

37.一般方法的单词前缀:

  • 添加元素的方法:add开头
  • 删除元素的方法:remove开头
  • 替换元素的方法:replace开头
  • 动态传入属性名:%K
  • 动态设置属性值:%@
时间: 2024-10-13 14:13:26

OC的总结 ***希望对大家有帮助*** ---高小杰的相关文章

数电基础之《OC门》

OC门,又称集电极开路门,Open Collector. 为什么引入OC门?实际使用中,有时需要两个或两个以上与非门的输出端连接在同一条导线上,将这些与非门上的数据(状态电平)用同一条导线输送出去.因此,需要一种新的与非门电路--OC门来实现"线与逻辑". OC门主要用于3个方面:(1)实现与或非逻辑(2)用做电平转换(3)用做驱动器. 1.实现线与逻辑 2. 电平转换(TTL电平转换为CMOS电平) 2.1 常用逻辑电平 逻辑电平:有TTL.CMOS.LVTTL.ECL.PECL.G

整理几个自学网站给你!让你也成为一专多能无缺陷的斜杠青年!

生活在这个充满竞争,血腥味十足分分钟钟就会别人取代的大数据移动互联时代,大家一有点时间就会拼命地给自己打鸡血充电学习,让自己可以拥有一专多能无缺陷的斜杠青年!其实,更多人害怕的是自己在某个时候落后于别人,被后来者取代.所以自学技能成为当下很流行的一个充电方式,一来可以不用花一大堆钱报很多培训班就可以自学多种技能,而来还可以省下很多时间,真是一举两得的事情,但是大家可能在网络学习一般没有针对性,一去就是百度,找不到自己喜欢的自学网站,所以,今天兿林就给大家推荐几个值得大家去自学的网站.一来可以省下

我也要学iOS逆向工程--函数

大家好,这篇我开始学习函数了.先学 C 函数,然后再 OC 的吧.OC 应该复杂点的吧. 然后看看汇编情况哦! 学习函数呢,肯定要弄清楚几个事情. 1.跳转地址. 2.返回地址 3.参数 4.函数获取参数 5.返回值和如何返回 6.扫尾 我们开始了哦!1个个的突破!唉,这个学习笔记是一边学一边写,不知道到底能不能边写边突破呢.小马过河,试试吧.呵呵. 1.跳转地址.因为xcode默认反汇编的时候,并没有显示出机器码,所以这里,我们要用一个命令去显示:disassemble -fmb 我们发现这样

南阳OJ 61 传纸条(一)

传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们可以通过传纸条来进行交流.纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n).从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者

值类型与引用类型的区别

值类型 基本类型  4类8种 整型  byte   字节型   1长度   0~255 short  短整型   2长度 int      整型      4长度 long   长整型   8长度 浮点型  float     单精度浮点型 double 双精度浮点型 字符型  char  单字符型  数据必须包裹在单引号之间 波尔型  bool  逻辑型  true 真.对 /  false  假.错 枚举类型 结构体 引用类型               字符串   string  多个字符

zookeeper能做什么?

Zookeeper是Hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多.今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用. Zookeeper是针对大型分布式系统的高可靠的协调系统.由这个定义我们知道zookeeper是个协调系统,作用的对象是分布式系统.

荣耀的双十一:为冠军而来

前些日子,第三方数据机构发布报告指出华为手机在出货量方面已经赶超小米,之后又有知名自媒体指出,荣耀仅2014年第一年的销量就达到2000万部,而2015年更是只用半年时间就达到2000万部销量.该自媒体指出,华为在2015年的销量将会铁定超越1亿部,而按照目前发展速度来看,未来荣耀或将实现单品牌赶超小米的速度. 这种磅礴而凶猛的发展势头,使得荣耀对双十一也信心满满. 10月30日,荣耀官方微博发布消息,内容和配图均以"为冠军而来"为口号,力图抢夺双十一手机销量冠军的意图可见一斑.除此之

大数据日知录:架构与算法

大数据丛书 大数据日知录:架构与算法(大数据领域专家力作,专注大数据架构和算法,全面梳理大数据相关技术) 张俊林 著   ISBN 978-7-121-24153-6 2014年9月出版 定价:69.00元 404页 16开 编辑推荐 这是一本心血之作,历时3年,质量上乘. 从架构与算法的角度,比较全面地分门别类梳理了大数据相关技术. 本书内容紧跟技术前沿,讲解深入浅出,适合大数据领域所有技术人员. 书中还列有作者优选的高质量文献,能为读者节省选择的时间,绝对值得一读. 内容提要 大数据是当前最

浮点数问题

(1)浮点数是有理数的集合,有些有理数不能表示,会有舍去误差如0.1等. (2)浮点数可以表示的连续整数也是有限的. 有些脚本语言,比如awk,lua中都是使用浮点数来存储整数的,也就是说,我们在语言中使用的整数,在语言内部是使用浮点数来表示的.我们知道,浮点数的运算中通常存在着一定的误差,所以整数是否能被浮点数精确表示呢?答案是可以,不过不是所有范围的整数都可以被精确的表示.由于浮点数精度的问题,所以浮点数的分布也就呈现出非均匀分布. 先简单介绍一下一个常用的浮点数在计算机中的组成,最常用的浮