IOS Swizzle(hook)

时间:2014-06-08 22:41:02   收藏:0   阅读:372

 

 

 

///////////////////////////////////////////////////////////////////////////////////////////////////

#import "NSArray+swizzle.h"

@implementation NSArray (swizzle)

-(id) myLastObject

{

    id ret = [self myLastObject];

    NSLog(@"-----myLastObject-------");

    return ret;

}

@end

////////////////////////////////////////////////////////////

#import "NSArray+swizzle.h"

#import <objc/runtime.h>

 

    Method ori = class_getInstanceMethod([NSArray class], @selector(lastObject));

    Method new = class_getInstanceMethod([NSArray class], @selector(myLastObject));

    method_exchangeImplementations(ori, new);

    

    NSArray * array = @[@"0",@"1",@"2",@"3"];

    NSString * str = [array lastObject];

    

    NSLog(@"str:%@",str);

 

输出 

-----myLastObject-------

str:3

解释:以上代码将lastObject与myLastObject。

所以  [array lastObject]这句话调用的应该是  myLastObject,而在myLastObject里面调用myLastObject其实就是调用lastObject。

 

 

IOS Swizzle(hook),布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!