如何在iOS11中调用NSArray的[]方法?

时间:2017-10-09 03:44:02

标签: ios objective-c

我曾经破解像

这样的方法
 git commit -m "<commit message>" <project directory path>

它在iOS10及以前版本中运行良好,但它无法在iOS11中运行,我们可以在iOS11中调用[]方法吗?

2 个答案:

答案 0 :(得分:0)

从iOS 11开始,由于某些原因我还在研究,只能调用一次混合方法。

static dispatch_once_t once;
dispatch_once(&once, ^{    
    Method originalMethod = class_getInstanceMethod([NSArray class], @selector(objectAtIndexedSubscript:));
    Method swapMethod = class_getInstanceMethod([NSArray class], @selector(objectAtIndexedSubscriptNew:));
    method_exchangeImplementations(originalMethod, swapMethod);
});

答案 1 :(得分:-1)

我将课程从[NSArray class]更改为NSClassFromString(@"__NSArrayI"),现在效果很好。