zoukankan      html  css  js  c++  java
  • 动态调用

    #如果你想在运行时通过给定的字符串来动态创建对应的对象并且调用某中的方法。

    #如果你得到一个id对象,但不知道该对象是否含有某方法,如果有就调用它。

    请看下面的例子:

    DynObj.h

     

    #import <Foundation/Foundation.h>


    @interface DynObj : NSObject {
    NSString
    *name;
    }

    @property(nonatomic,retain) NSString
    * name;

    - (id) init;
    - (void) dealloc;

    -(void) show;

    @end

    DynObj.m

     

    #import "DynObj.h"


    @implementation DynObj

    @synthesize name;

    - (id)init
    {
    if((self = [super init]))
    {
    name
    = @"123";
    }
    return self;
    }

    - (void) dealloc
    {
    [name release];
    [super dealloc];
    }

    -(void) show
    {
    NSLog(
    @"%@", name);
    }

    @end

    main.m

     

    #import <Foundation/Foundation.h>
    #import
    "DynObj.h"

    int main (int argc, const char * argv[])
    {

    NSAutoreleasePool
    * pool = [[NSAutoreleasePool alloc] init];

    //动态创建对象
    Class classToInstantiate = NSClassFromString(@"DynObj");
    id newObject
    = [[classToInstantiate alloc] init];
    [newObject show];

    //通过选择器判断是否存在某方法
    if([newObject respondsToSelector:@selector(show)])
    {
    [newObject show];
    }

    [pool drain];
    return 0;
    }

    输出:

     

    2011-04-29 09:35:52.615 demo02[1980:903] 123
    2011-04-29 09:35:52.618 demo02[1980:903] 123
    Program ended with exit code:
    0
  • 相关阅读:
    cookie+session,会话时间设定
    input中id和name属性的区别。
    框架和设计模式的区别
    Java数字格式化输出时前面补0
    DDL_数据库模式定义语言
    7.JAVA_SE复习(文件)
    (python)数据结构---集合
    (python)数据结构---字典
    (python)数据结构---字符串
    (python)排序算法
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/2032431.html
Copyright © 2011-2022 走看看