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

#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。

 

 

相关文章:

  • 2021-08-30
  • 2021-04-23
  • 2022-12-23
  • 2022-01-27
  • 2022-12-23
  • 2022-12-23
  • 2021-04-24
  • 2021-06-05
猜你喜欢
  • 2021-09-26
  • 2021-09-13
  • 2022-12-23
  • 2021-09-03
  • 2022-12-23
  • 2021-09-23
  • 2022-12-23
相关资源
相似解决方案