【发布时间】:2012-03-20 14:04:04
【问题描述】:
我获得了一个必须在项目中使用的静态库(.a 扩展文件),但是我需要修改一些源代码才能对我有用。实现这一目标的最佳方法是什么?
【问题讨论】:
我获得了一个必须在项目中使用的静态库(.a 扩展文件),但是我需要修改一些源代码才能对我有用。实现这一目标的最佳方法是什么?
【问题讨论】:
简单但最不适用的解决方案是子类化或扩展。
如果许可证授权,您也可以尝试反编译 .a 文件:cf。 Decompiling Objective-C libraries,但它可能很棘手和/或非法。
【讨论】:
您不能修改静态库,最好的办法是尝试访问源代码或请作者为您修改。
【讨论】:
您可以使用 Objective C 扩展。
例如,.a 库中有一个[MyClass myMethod],您想更改它,可以使用以下代码:
#import "MyClass.h"
@interface MyClass( CategoryName )
-(void)myMethod;
@end
@implementation MyClass( CategoryName )
-(void)myMethod
{
//new implementation goes here
}
@end
【讨论】:
您不能修改库,只能扩展。这就是重点——在人们无法阅读的情况下分发代码背后的功能。
【讨论】: