IOS Swizzle(hook)

时间:2014-06-08 22:41:35   收藏:0   阅读:508

 

 

 

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

#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

原文:http://www.cnblogs.com/rollrock/p/3775422.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!