• Get Rid of NSCachedURLResponse's Encoding Methods Warning


    Before xcode 4.3 we can use this to encode and decode NSCachedURLResponse:

    @implementation NSCachedURLResponse (NSCoder)

    - (void)encodeWithCoder:(NSCoder *)coder {

         // TODO: 

    }

     

    - (id)initWithCoder:(NSCoder *)coder {

         // TODO: 

    }

    @end

    But in xcode 4.3, it will cause a warng.

    There are two methods to avoid the warning.

    One:

    ref, https://github.com/rs/SDURLCache/pull/29

    Two:

    @interface NSCachedURLResponse (ABC)

    + (void)swapMethods;

    - (id)myInitWithCoder:(NSCoder *)aCoder;

    - (void)myEncodeWithCoder:(NSCoder *)aCoder;

    @end

     

     

    #include <objc/objc.h>

    #import <objc/runtime.h>

    #import <objc/message.h>

     

    void SwapMethods(Class cls, SEL originalSel, SEL newSel) {

        Method originalMethod = class_getInstanceMethod(cls, originalSel);

        Method newMethod = class_getInstanceMethod(cls, newSel);

        method_exchangeImplementations(originalMethod, newMethod);

    }

     

     

    @implementation NSCachedURLResponse (ABC)

    + (void)swapMethods {

        Class tempClass = [NSCachedURLResponse class];

        SwapMethods(tempClass, @selector(initWithCoder:), @selector(myInitWithCoder:));

        SwapMethods(tempClass, @selector(encodeWithCoder:), @selector(myEncodeWithCoder:));

    }

    - (id)myInitWithCoder:(NSCoder *)aCoder {

         // TODO: 

    }

    - (void)myEncodeWithCoder:(NSCoder *)aCoder {

        // TODO: 

    }

    @end

  • 相关阅读:
    虚拟机安装VMware Tools
    SVN源码泄露漏洞
    为什么站点使用https加密之后还能看到相关数据
    AWVS11使用教程——Acunetix Web Vulnerability Scanner 11.x
    接口测试_RESTClient基本使用
    【pwnable.kr】coin1
    【pwnable.kr】 mistake
    【pwnable.kr】leg
    【pwnable.kr】random
    【pwnable.kr】passcode
  • 原文地址:https://www.cnblogs.com/Proteas/p/2735590.html
Copyright © 2020-2023  润新知