现在的位置: 首页 > 综合 > 正文

ios反射

2018年02月03日 ⁄ 综合 ⁄ 共 738字 ⁄ 字号 评论关闭
<pre name="code" class="objc"><pre name="code" class="objc">    Class cls = NSClassFromString(@"ClassName");
    
    id a= [[cls  alloc]  init];
    
//    调用方法
    NSString *selectorName = @"selector:";//方法名
    NSString *selectorParame = @"aaa";    //方法参数
    SEL selector = NSSelectorFromString(selectorName);
    if ([a respondsToSelector:selector]) {
        objc_msgSend(a,selector,selectorParame);//执行方法

    }
    
//     参数设置
    NSString *parameter = @"parameter";  //参数名
    NSString *first = [[parameter substringToIndex:1] uppercaseString];
    NSString *next  = [parameter substringWithRange:NSMakeRange(1,parameter.length)];
    NSString *parameterName = [NSString stringWithFormat:@"set%@%@:", first,next];
    
    SEL parameterSelector = NSSelectorFromString(parameterName);
    if ([a respondsToSelector:parameterSelector]) {
        objc_msgSend(a,parameterSelector,@"parameterValue");
    }


【上篇】
【下篇】

抱歉!评论已关闭.