IOS 学习日志 2015-3-17

Objective--C 

一 关键字
@class 导入已有的类
id 对象类型 表示任何一个ObjC对象类型
Block  对象类型 OC中称为代码块 类似于C中的函数式指针
typedef 定义数据类型
@Category 分类,扩展

二 函数

三 规则
1 id
A id可以表示任何一个ObjC对象类型,类型后面的”<协议名>“用于约束作为这个属性的对象必须实现该协议(注意:使用id定义的对象类型不需要加“*”);

2 @class
A 在.h文件中如果使用了另一个文件的类或协议我们可以通过@class或者@protocol进行声明,而不必导入这个文件,这样可以提高编译效率

3 Block
A Block类型定义:返回值类型(^ 变量名)(参数列表)(注意Block也是一种类型);
B 感觉类似于匿名函数
C 变量名在类定义时可以不用带*
D Block的typedef定义:返回值类型(^类型名称)(参数列表);
E Block的实现:^(参数列表){操作主体};
F Block中可以读取块外面定义的变量但是不能修改,如果要修改那么这个变量必须声明_block修饰;

3 Category
A 扩展现有的类并且不需要改动原类
B 新建一个Objective-C 文件,选择类的类型为Category,还有要选择你要修改的类,注意看创建后的文件名,它是由原类名+新类名一起组成的,必须要会有那个加号符,
  例如 NSString 扩展后的文件名为 NSString+Trim ,再看类的定义上需要改动,原来定义一个普通的类是 @interface 类名:NSObject,扩展后就是 @interface 类名(扩展名)
  例如 @interface NSString(Trim)
C 适用范围
	I 系统或框架中的类
	II   类包含了很多个方法实现,而这些方法需要不同团队的成员来实现
	III 类包含了很多个方法实现,而这些方法需要不同团队的成员来实现
D 需要注意的问题
	I Category可以访问原始类的实例变量,但不能添加实例变量,如果想添加变量,那就通过继承创建子类来实现。
	II Category可以重载原始类的方法,不大不推荐这么做,这样会覆盖掉原始类的方法。如果确实要重载,那就通过继承创建子类来实现。
	III	和普通接口有所区别的是,在Category的实现文件中的实例方法只要你不去调用它你可以不用实现所有声明的所有方法。
时间: 2024-09-29 02:19:18

IOS 学习日志 2015-3-17的相关文章

Python学习日志9月17日 一周总结

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000; min-height: 12.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; fo

ios 学习日志

纠结了许久最终,选择了来无限互联学习ios. 第一部分学习C语言,虽然说学习过一遍了,但是好久不用,还是感觉到很生疏,再加上更换编译器,需要进行调整,在这里不得不说X-code这个编译器确实好用啊!功能确实强大. 以前看似很简单的题,没有去编写, 亲身写了代码才知道,真的不是那么简单,真的是会遇到很多问题的,然后也非常报歉的把辅导老师也给饶晕了. 下面分享一下自己遇到的一些技术方面的问题: 1.MacBook的快捷键操作 command键类似于windows的control键 command+空

黑马程序员---ios学习日志2

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- ios开发基础-C语言 object - c简称OC,是扩充C的面相对象编程语言. C语言发展:BCPL语言--B语言--C语言 C语言发展现状:C语言在计算机编程语言中排名第一 C语言学习中难点: 1.运算符: 自增.自减运算符 2.进

黑马程序员---ios学习日志3

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- C语言学习 1.关键字的基本概念 关键字就是已被C语言本身使用,不能作其他用途的字. C语言中一共有32个关键字 auto double int struck break else long  switch case enum  regi

黑马程序员---ios学习日志10

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 程序的结构及分类 程序的结构有三种分别为: 1.顺序结构:一种简单的程序结构,他有若干个依次执行的处理步骤组成. 程序流程  语句1-- 语句2-- 语句3-- .... 2.分支结构:程序遇到一些条件判断,流程根据条件是否成立由不同的流

黑马程序员---ios学习日志12

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1.对象的存储细节 类创建对象,每个对象在内存中都占居一定的储存空间,每个对象都有一份属于自己单独的成员变量,所有的对象公用类的成员方法,方法在整个内存中只有一份,类本身在内存中占据一份储存空间,类的方法存在于此. 举例: #import

黑马程序员---ios学习日志4

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- C语言标示符概念及命名原则 1.标示符 在c语言中,符号常量,数组,函数等都需要一定的名称,我们把这种名称称为标示符. 表示符划分:关键字,预定义标示符和用户标示符 2.标示符命名原则 一.只能由字母.数字.下划线或者美元符号($)组成

黑马程序员---ios学习日志9

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 三目运算符 三目运算符(条件运算符)为 ? 和 : ,他是一个三目运算符,即有三个操作数参与运算的量. 有条件运算符组成条件表达式的一般形式为: 表达式1?表达式2:表达式3   求值规则 如果表达式1的值为真,则以表达式2的值作为条件表

黑马程序员---ios学习日志6

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- scanf函数 scanf函数原型包含在标准输入输出头文件"stdio.h"中,用于接收键盘输入的内容. scanf函数是阻塞式函数 阻塞式函数:函数执行后,会等待用户输入,如果用户不输入任何内容,他会一直等待 格式:

黑马程序员---ios学习日志 1

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 开发概述 ios是一款苹果系统开发的操作系统(os是Operating System的简称),就跟平时所用的windows系统一样,都是操作系统 ios与windows的差异 windows是PC操作系统,也就是运行在电脑上的操作系统.