博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS 学习日志 2015-3-17
阅读量:6857 次
发布时间:2019-06-26

本文共 1082 字,大约阅读时间需要 3 分钟。

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

 

转载于:https://www.cnblogs.com/ak23173969/p/4345074.html

你可能感兴趣的文章
gvim汉化及配置
查看>>
ubuntu下JMF RTP不支持单播接收
查看>>
fastboot烧写命令
查看>>
深度测试与alpha混合(1)
查看>>
15幅非常有创意的影子摄影作品欣赏
查看>>
SQL Server 2008 VALUES
查看>>
[算法] 已知在平面坐标系内有N个点,求离开给定坐标距离最近的10个点
查看>>
使用DMV和DMF分析数据库性能
查看>>
PHP验证IP地址输入的准确性:数组数值验证
查看>>
HashMap概述
查看>>
在rem布局下使用背景图片以及sprite
查看>>
JAVA设计模式之【抽象工厂模式】
查看>>
数字电视的电子节目指南(EPG)及其系统
查看>>
11 复用与多址
查看>>
附录A 编译安装Hadoop
查看>>
android studio building project info 错误
查看>>
【Scala】Scala之Control Structures
查看>>
三星手机拍照,从图库选择照片旋转问题完美解决
查看>>
算法笔记_173:历届试题 斐波那契(Java)
查看>>
菜鸟版JAVA设计模式—外观模式
查看>>