objC 类名后圆括号的意义

类别有三大作用: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

时间: 2024-10-12 20:21:05

objC 类名后圆括号的意义的相关文章

new对象时,类名后加括号与不加括号的区别

[1]默认构造函数 关于默认构造函数,请参见随笔<类中函数> 请看测试代码: 1 #include <iostream> 2 using namespace std; 3 4 // 空类 5 class empty 6 { 7 }; 8 9 // 一个默认构造函数,一个自定义构造函数 10 class Base 11 { 12 public: 13 Base() 14 { 15 cout << " default Base construct " &

java new类名后接方法名声明

public class TestBase { int x = 3; public void ppp() { System.out.println(x + 4); }} public class TestMain { public static void main(String[] args) { TestBase t = new TestBase() { public void ppp(){ System.out.println(x + 5); } }; t.ppp(); } } 相当于新建一

java接口的意义

java当中继承一个接口,要重写他的方法的话,那为什么还要多此一举的去实现一个接口呢? 直接把方法写在类当中不就可以了?就是说去掉类名后面的Implements 接口 ,可以不可以呢? 接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,[接口名] [对象名]=new [实现接口的类],这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理.就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.met

构思一个在windows下仿objc基于动画层ui编程的ui引擎

用c/c++编程有些年了,十个指头可以数齐,在涉入iOS objc开发后,有种无比舒服的感觉,尤其在UI开发上. 在QuartzCore.framework下动画和透明窗口等许多效果的事都变得那么方便和自然.因为在windows窗口机制中没有动画和透明窗口(Aero 除外)等效果的引擎层,还有GDI中不支持ARGB,开发中都要依靠不断重复而且大量的BitBlt和Timer来完成,工作量与开发iOS不可比. 大体上就是尝试引入UIKit.framework那样的编程体验.首先要有QuartzCor

Swift学习: 从Objective-C到Swift

文章组织脉络: 从Objective-C到Swift的语法差异.我们熟悉的Objective-C特性在Swift中如何展现. 从Objective-C到Swift的进步改进.研究对比Swift在安全性,易用性上的提升,给我们带来的新编程范式. 目录: 1.属性(property)和实例变量(instance variable) 2.控制流 3.函数 4.类与初始化(Initializers) 5.枚举与结构体 6.协议(Protocols) 7.Swift与Cocoa 8.总结 1.属性(pro

ios面试题汇总

1.Difference between shallow copy and deep copy??浅复制和深复制的区别??答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身.?深层复制:复制引用对象本身.?意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源?还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想.深复制就好

oc基础知识(转)

1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouch Media Core Services Core OS -------------------- System Framework OC的类声明,定义域 OC关键字定义为  @class O-C特有的语句for(..in ..)迭代循环,其他的条件和循环语句和c一样 OC对面向对象的概述 (1)

京东/优酷IOS面试题

京东面试题 1.请写出以下代码输出 1 2 3 4 5 int a[5] = {1, 2, 3, 4, 5}; int *ptr = (int *)(&a + 1); printf("%d, %d", *(a + 1), *(ptr + 1)); 参考答案: 2, 随机值 这种类型题好像挺常见的.考的就是C语言上的指针的理解和数组的理解. 分析: a代表有5个元素的数组的首地址,a[5]的元素分别是1,2,3,4,5.接下来,a + 1表示数据首地址加1,那么就是a[1],也就

IOS-OC的基础知识

IOS学习之路--OC的基础知识 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouch Media Core Services Core OS -------------------- System Framework OC的类声明,定义域 OC关键字定义为  @class O-C特有的语句for(..in ..)迭代循环,其他的条件和循环语句和c