foundation框架之反射机制
- 概念
- 例子
一、概念
反射:根据字符串实例话对象或者调用方法
- //
- // main.m
- // 反射机制
- //
- // Created by apple on 14-3-28.
- // Copyright (c) 2014年 apple. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "Person.h"
- #import "Student.h"
- #import "Person.h"
- #pragma mark NSObject常用方法
- void test() {
- Student *stu = [[[Student alloc] init] autorelease];
- // isKindOfClass判断对象是否属于某个类 或者 子类
- if ( [stu isKindOfClass:[Person class]] ) {
- // NSLog(@"stu属于Person或者继承自Person");
- }
- // isMemberOfClass判断对象是否属于某个类(不包括子类)
- BOOL result = [stu isMemberOfClass:[Student class]];
- // NSLog(@"%i", result);
- // 直接调用
- // [stu test];
- // 间接调用
- [stu performSelector:@selector(test)];
- // [stu performSelector:@selector(test2:) withObject:@"abc"];
- // 延迟2秒后调用test2:方法
- [stu performSelector:@selector(test2:) withObject:@"abc" afterDelay:];
- }
- //类的反射机制
- void test1()
- {
- NSString *str = @"Person";
- Class class = NSClassFromString(str);
- Person *person = [[[class alloc] init] autorelease];
- NSLog(@"%@", person);
- NSString *str1 = NSStringFromClass([person class]);
- NSLog(@"%@", str1);
- }
- //方法的反射机制
- void test2()
- {
- Person *person = [[[Person alloc] init] autorelease];
- NSString *str = @"test:";
- SEL sel = NSSelectorFromString(str);
- [person performSelector:sel withObject:@"name"];
- NSString *str1 = NSStringFromSelector(sel);
- NSLog(@"%@",str1);
- }
- int main(int argc, const char * argv[])
- {
- @autoreleasepool {
- test2();
- }
- return ;
- }
foundation框架之反射机制的更多相关文章
- 反射机制及开源框架xUitls的使用,使用HttpUtils通过断点续传下载文件
反射: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性 Java反射机制主要提供下面几种用途: 1•在运行时判断 ...
- 深入浅出学习hibernate框架(三):java的反射机制
上篇博客写到了JDBC的基本操作,今天准备写一篇关于JAVA反射机制的文章,因为java的反射机制和上一篇JDBC都是Hibernate框架的基本要素.在Hibernate的运行机制中,这两块的内容正 ...
- C++反射机制:可变参数模板实现C++反射(使用C++11的新特性--可变模版参数,只根据类的名字(字符串)创建类的实例。在Nebula高性能网络框架中大量应用)
1. 概要 本文描述一个通过C++可变参数模板实现C++反射机制的方法.该方法非常实用,在Nebula高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能.Nebula框架在码云的仓库地 ...
- DirectX11--深入理解Effects11、使用着色器反射机制(Shader Reflection)实现一个复杂Effects框架
前言 如果之前你是跟随本教程系列学习的话,应该能够初步了解Effects11(现FX11)的实现机制,并且可以编写一个简易的特效管理框架,但是随着特效种类的增多,要管理的着色器.资源等也随之变多.如果 ...
- 读懂框架设计的灵魂—Java反射机制
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...
- iOS开发系列—Objective-C之Foundation框架
概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底 ...
- iOS 开发--Objective-C 反射机制
了解反射机制 Objective-C语言中的OC对象,都继承自NSObject类.这个类为我们提供了一些基础的方法和协议,我们可以直接调用从这个类继承过来方法.当然,本篇文章中讲到的反射方法,就在NS ...
- iOS Foundation 框架基类
iOS Foundation 框架基类 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...
- OC学习9——反射机制
1.OC提供了3种编程方式与运行环境进行交互: 直接通过OC的源代码:这是最常见的方式,开发人员只是编写OC源代码,而运行环境负责在后台工作. 通过NSObject类中定义的方法进行动态编程:因为绝大 ...
随机推荐
- TcxDBTreeList导出EXCEL
function ExportExcel(tree: TcxDBTreeList; const fileName: string = '1.xls'): Boolean;var sd: TSave ...
- unigui MessageDlg方法调用例子
procedure TfrmEmployee.btnDeleteClick(Sender: TObject);var aBool: Boolean;begin inherited; MessageDl ...
- 关于datatable的一些操作以及使用adapter对数据的操作
private void updateToolStripMenuItem_Click(object sender, EventArgs e) {//将数据更新回数据库 //获取源数据 DataTabl ...
- Delphi中GUID相等检查中经典指针应用
type PGUID = ^TGUID; TGUID = packed record D1: LongWord; D2: Word; D3: Word; D4: array[0..7] of Byte ...
- JDBC 常用驱动类及url格式
1. oracle <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</ ...
- thinkphp框架 查询语言
thinkphp框架 查询语言 EQ 等于 (=) NEQ 不等于 (!=) GT 大于 (>) EGT 大于等于 (>=) LT ...
- android进度条的使用
// 导入按钮事件 btnsearch.setOnClickListener(new View.OnClickListener() { @Override public void on ...
- VM VirtualBox 上安装 CentOs6.4(详细)
在网上下载:CentOS-6.4-i386-bin-DVD1.iso镜像. 这是我在VBox上安装CentOs6.4的过程: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12 ...
- 【转】BitmapFactory.Options
BitmapFactory.Options这个类的信息:http://developer.android.com/reference/android/graphics/BitmapFactory.Op ...
- js 数组去重 的5种方法
一万数组,4个重复项,先贴上成绩. 1.3毫秒 2.115毫秒 3.71毫秒 4.6毫秒 1.哈希表 2.JQuery (最快的方法是用JQuery 这句话是截图带的... 实际上Jq是最慢的) 3. ...