美文网首页
iOS 拾遗 (一)

iOS 拾遗 (一)

作者: 木兮_君兮 | 来源:发表于2019-03-28 13:19 被阅读0次
    1. UIImage 加载方式问题,影响性能。
    • imageNamed: 从内存中加载图片会影响性能 (图片size比较小,经常用的)
    • imageWithContentOfFile: 不是从内存中加载,从bundle资源中进行加载
    NSString *path = [[NSBundle mainBundle] pathForResource:@”icon”ofType:@”png”];
    myImage = [UIImage imageWithContentsOfFile:path];
    
    • [[NSImage alloc] initWithContentsOfURL:] :通过路径加载图片
    1. NSInvocation 作用 ?

    用来封装一段代码的。

    用法

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        //方法属于谁就用谁来创建
        NSMethodSignature*signature = [ViewController instanceMethodSignatureForSelector:@selector(sendMessageWithNumber:WithContent:)];
        //NSInvocation对象
        NSInvocation*invocation = [NSInvocation invocationWithMethodSignature:signature];
        invocation.target = self;
        //invocation中的方法必须和签名中的方法一致。
        invocation.selector = @selector(sendMessageWithNumber:WithContent:);
        /*第一个参数:需要给指定方法传递的值
               第一个参数需要接收一个指针,也就是传递值的时候需要传递地址*/
        //第二个参数:需要给指定方法的第几个参数传值
        NSString*number = @"1111";
        //注意:设置参数的索引时不能从0开始,因为0已经被self占用,1已经被_cmd占用
        [invocation setArgument:&number atIndex:2];
        NSString*number2 = @"啊啊啊";
        [invocation setArgument:&number2 atIndex:3];
        //2、调用NSInvocation对象的invoke方法
        //只要调用invocation的invoke方法,就代表需要执行NSInvocation对象中制定对象的指定方法,并且传递指定的参数
        [invocation invoke];
    }
     - (void)sendMessageWithNumber:(NSString*)number WithContent:(NSString*)content{
        NSLog(@"电话号%@,内容%@",number,content);
    }
    

    相关文章

      网友评论

          本文标题:iOS 拾遗 (一)

          本文链接:https://www.haomeiwen.com/subject/uouavqtx.html