如何修改使用 cocoapods 添加的类别的方法

How to modify a method from category which is added using cocoapods

我已经使用cocoapods添加了AFNetworking,我需要修改UIActivityIndi​​catorView+AFNetworking.m类别,更具体地说,我需要在我的项目中使用的自定义日志记录语句添加到dealloc方法的末尾。

- (void)dealloc {
    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
    [notificationCenter removeObserver:self name:AFNetworkingTaskDidCompleteNotification object:nil];
    [notificationCenter removeObserver:self name:AFNetworkingTaskDidResumeNotification object:nil];
    [notificationCenter removeObserver:self name:AFNetworkingTaskDidSuspendNotification object:nil];
#endif

    [notificationCenter removeObserver:self name:AFNetworkingOperationDidStartNotification object:nil];
    [notificationCenter removeObserver:self name:AFNetworkingOperationDidFinishNotification object:nil];
}

是否可以swizzle/subclass/modify/etc这个dealloc方法?

您需要停止通过 cocoapods 使用它,而是在 github 上 fork 您自己的 AFNetworking 存储库版本并改用它。

通过这种方式,您有机会回馈社区。