类别有三大作用:1 可以使本来需要在.h中声明的方法放到.m文件中声明,使方法变成私有。 2 可以扩展或覆盖一个类的功能,包括系统类,维护了代码原本的结构不受影响。3 可以分散代码到不同的文件之中,比如系统类库里有一个NSObject的类别,并没有写在NSObject类里,而写到另外一个类里,主要是因为这个类别扩展的功能跟那个类相关,便于将来查看。

举例:如何让一个导航条加一个背景图。 
以下“自定义的类别”就是针对 UINavigationBar系统类的,覆盖了其系统方法  (void) drawRect:(CGRect)rect,将来导航栏显示的时,方法 drawRect会自动调用,达到把图片显示到导航栏中. 
@interfaceUINavigationBar (MyCustomNavBar)

@end 
@implementation UINavigationBar (MyCustomNavBar) 
- (void)drawRect:(CGRect)rect { 
UIImage *barImage = [UIImageimageNamed:@"nav11.png"]; 
[barImage drawInRect:rect];

@end

转载于:https://www.cnblogs.com/qiuyucheng/p/4247981.html

objC 类名后圆括号的意义相关推荐

  1. Java 技术篇-IntelliJ IDEA修改类名后运行提示找不到或无法加载主类问题解决方法

    运行后提示提示"找不到或无法加载主类",看右上角可以看到默认运行的主类名字没有被更新,问题就出在这里了. 右键项目直接运行新项目就好了,后面默认运行主类就会被更新过来了. 可以看到 ...

  2. 修改类名后依旧按照原先的类名进行加载

    在springMvc+Mybatis的项目里面 修改了一个类名,之后编译的时候报出了以下的错误 试过  clean也没有作用 黑色涂鸦部分为原先的类名 删掉target文件夹解决了问题 原因是targ ...

  3. 简单改变后的重大意义

    代码对比 思想 进行讨论之前 进行讨论之后 总结: 代码对比 思想 进行讨论之前 感觉版本二只是在版本一的基础上增加了两个变量,变得更灵活了,可以不只是5和6相加. 进行讨论之后 1.版本一到版本二实 ...

  4. java 类名后加变量名是什么意思?

    回答这个问题我们需要先了解两个事情: A是一个类,我们如果对他进行实例化,需要这样写: A a = new A(); 详细解释一下这个语句,首先等号左边做的事情:在JVM栈内存(stack)中定义了一 ...

  5. 出栈(释放栈)和引用栈内数据意义不等同,和嵌套有关系但不是等同关系,局部变量进栈操作,不是局部变量自动带有进栈指令。汇编语言后局部变量操作是包含进栈操作指令PUSH和栈内地址存储数据调用,出栈。

    出栈(释放栈)和引用栈内数据意义不等同,和嵌套有关系但不是等同关系,局部变量进栈操作,不是局部变量自动带有进栈指令.汇编语言后局部变量操作是包含进栈操作指令PUSH和栈内地址存储数据调用,出栈. 2. ...

  6. bootstrap中表格、修饰图片、浮动、背景框、提示框及关闭提示框、元素淡入淡出及jQuery中操作类名

    表格: bootstrap中用类定义了几个风格的表格,使用时给table标签加上类名即可,具体如下: 类名 描述 .table 基础表格:标题加粗,只有水平的淡灰色边框线条,没有垂直方向的线条 .ta ...

  7. ARTS-9(回溯法的组合总和系列,泛型总结、人生的意义在于体验)

    Algorithm 题目描述 leecode 39. 组合总和 给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标 ...

  8. JPA不同包下同类名查询出错

    不同包下同类名查询出错 异常现象:使用JPA进行查询时,JPA的实体类映射到了另外一个包下的同名类,由于两个同名类中字段名和字段数不相同,所以会出现种种查询错误. 原因及对策:这里应该是jpa实体类默 ...

  9. java 继承 意义_Java中继承,类的高级概念的知识点

    1.继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2.继承的优点 A.代码的可重用性 B.子类可以扩展父 ...

  10. 条款25 :尽可能延后变量定义式的出现时间

    只要你定义了一个变量,而类型带有一个构造函数和一个析构函数,你就得忍受构造成本与析构成本.或许你认为你不可能定义一个不会使用的变量,但是请看下面的代码: std::stringencryptPassw ...

最新文章

  1. 非常实用的 Python 技巧
  2. Python Json序列化与反序列化
  3. 网络爬虫入门系列(3) httpClient
  4. 入门数据分析选择Python还是SQL?七个常用操作对比!
  5. nginx架构详解(50%)
  6. 第一个Qt+opencv程序
  7. 32位和64位机器上C语言数据类型的大小
  8. Factory method ‘redisConnectionFactory‘ threw exception; nested exception is java.lang.NoClassDefFou
  9. c# 链接mongDB集群实战开发2
  10. java 读取 dto_DTO 实现 service 和 controller 之间值传递的操作
  11. InnoDB存储引擎
  12. 打开并读取npy文件,查看文件内容
  13. 关于wow游戏插件制作之前的几件事
  14. 记录一下学习EFCore中的基础知识
  15. jquery UI 跟随学习笔记——拖拽(Draggable)
  16. bcn_timout,ap_probe_send_start
  17. SpringBoot 接口数据加解密技巧
  18. 无法启用网络发现和文件共享或共享无法访问
  19. 关闭烦人的Windows XP系统哔哔声
  20. Swift 中的类与结构体

热门文章

  1. apache php的权限,Unix上的Apache PHP写权限
  2. 【学习笔记】平衡二叉树(AVL树)简介及其查找、插入、建立操作的实现
  3. STM32——整形变量转换为字符变量并通过串口发送出去
  4. cmd代码玩贪吃蛇_关于N行贪吃蛇回答的补充
  5. PHP泡泡龙源码,泡泡龙 游戏源码
  6. 图像空域增强:卷积运算法
  7. C/C++[codeup 1785]字符串连接
  8. C/C++[Shortest Distance]
  9. 用Github的Api发现stars最多开源项目
  10. 带有RNN循环神经网络的机器学习 4 NLP 从零到英雄 ML with Recurrent Neural Networks