zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [算法]Rotate Array
    [java]Arrays.copyOf() VS System.arrayCopy()
    [java]注解
    [算法]String to Integer(atoi)
    微软2014校园招聘笔试题
    [算法]数组中未出现的最小正整数
    [算法]数组排序之后相邻数的最大差值
    [算法]求最短通路值
    [算法]数组的partition调整
    mac 解决安卓模拟器链接不上网络
  • 原文地址:https://www.cnblogs.com/Proteas/p/2735590.html
Copyright © 2011-2022 走看看