oc随笔

//判断当前方法是不是属于该类或者其子类
        id animal=[[Erhu alloc]init];
        SEL [email protected](show);
        BOOL flag=[animal respondsToSelector:sel];
        if(flag){
            [animal show];
        }else{
            NSLog(@"当前方法没有响应");
        }
        @try{
            [animal show];
        }@catch{
            NSLog(@"当前方法没有响应");

}

BOOL flag=[animal isKindOfClass:[Dog class]];

if(flag){

[animal show];

}else{

NSLog(@"当前方法没有响应");

}

BOOL flag=[animal isMemberOfClass:[Dog class]];//是不是当前类

//BOOL isSame=[animal1 class]==[animal2 class];//是不是属于同一类

时间: 2024-12-28 10:52:17

oc随笔的相关文章

oc随笔六:字典

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //NSDictionary字典对象,字典主要特征是一对一的key和value组成 //不可变字典 //初始化字典,一半key值是字符串对象,控制用NSNull对象表示 NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"velue1

OC课堂随笔——类

1.类的定义 类=属性+方法 --属性代表类的特征 --方法是类能对变化做出的反应 类定义的格式:类的声明和类的实现组成 --接口(类的声明):@interface 类名:基类的名字 .类名的首字母要大写 .冒号表示继承关系,冒号后面的类是父类 .NSObject是所有类的基类 .类的声明放在“类名+.h文件中,要由两部分组成:实例对象和方法声明” --实现(类的实现):@implementation类名 .方法实现 都用@结束 2.类的使用 .oc中对象通过指针来声明.如ClassA*obje

OC版贪吃蛇

昨天写了一个js版贪吃蛇,今天突然想写一个OC版的,来对比一下两种语言的区别 oc版功能,适配所有尺寸iphone,可暂停,可设置地图和蛇的比例,可加速 对比一下会发现js版的相对OC版的会简单一些,有想看js版的可以看我上一篇随笔 程序中没用到任何素材,效果图如下: github源码地址:https://github.com/masterChunlinHan/snake_OC 下面开始,跟js版一样,为了方便学习,所有代码都写在一个controller中,所以头文件中什么也不用写 #impor

oc j基础

和果子   博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅  :: 管理     9 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks 公告 昵称:和果子园龄:1年6个月粉丝:6关注:3 +加关注 搜索 常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 我的标签 oc零基础(4) 面向对象(4) 数组排序(1) 字面量(1) socket(1) block(1) 字符串(1) 字典(1) tableView重用(1) table

iOS开发——网络编程OC篇&amp;Socket编程

Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议   对应于应用层 tcp协议    对应于传输层 ip协议     对应于网络层 三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要

嵌入式&amp;iOS:回调函数(C)与block(OC)传 参/函数 对比

C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(int data_i32)); callBack.c 1).在doSomeThingCount函数,对运行次数自增,并调用参数--函数. void DSTCount(void(*CallBack)(int data_i32)) { static int numb = 0; numb++; (*Call

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

OC内存管理

OC内存管理 一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等. 管理范围:任何继承NSObject的对象,对其他的基本数据类型无效. 本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也

关于OC中直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型

关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使用NSStringFromCGRect(CGRect rect)来直接打印一个结构体,其他打印可以参考以下内容 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFrom