iPhone-如何修改静态库(.a文件)

iPhone-如何修改静态库(.a文件),iphone,static-libraries,Iphone,Static Libraries,我得到了一个静态库(.a扩展名文件),我必须在项目中使用它,但是在它对我有用之前,我需要修改一些源代码。实现这一点的最佳方法是什么?您不能修改静态库,最好是尝试访问源代码或让作者为您修改它。您不能修改静态库,您最好尝试访问源代码或让作者为您修改源代码。您可以使用Objective C扩展名 例如,在.a库中有一个[MyClass myMethod],如果要更改此库,可以使用以下代码: #import "MyClass.h" @interface MyClass( CategoryName ) -

我得到了一个静态库(.a扩展名文件),我必须在项目中使用它,但是在它对我有用之前,我需要修改一些源代码。实现这一点的最佳方法是什么?

您不能修改静态库,最好是尝试访问源代码或让作者为您修改它。

您不能修改静态库,您最好尝试访问源代码或让作者为您修改源代码。

您可以使用Objective C扩展名

例如,在.a库中有一个
[MyClass myMethod]
,如果要更改此库,可以使用以下代码:

#import "MyClass.h"
@interface MyClass( CategoryName )
-(void)myMethod;
@end

@implementation MyClass( CategoryName )
-(void)myMethod
{
    //new implementation goes here
}
@end

您可以使用Objective C扩展

例如,在.a库中有一个
[MyClass myMethod]
,如果要更改此库,可以使用以下代码:

#import "MyClass.h"
@interface MyClass( CategoryName )
-(void)myMethod;
@end

@implementation MyClass( CategoryName )
-(void)myMethod
{
    //new implementation goes here
}
@end

不能修改库,只能扩展。这是一个要点——在人们无法阅读的情况下分发代码背后的功能。

您不能修改库,只能扩展。这是一个要点——在人们看不懂的情况下,在代码背后分发功能。

简单但大多数情况下不适用的解决方案是子类化或扩展


如果.a文件的许可证授权,您也可以尝试对其进行反编译:cf.,但这可能很棘手和/或非法。

简单但大多数情况下不适用的解决方案是子类化或扩展


如果.a文件的许可证授权,您也可以尝试对其进行反编译:cf.,但这可能很棘手和/或非法。

什么是CategoryName?这个答案完全错误。使用类别的滑动有未定义的行为。什么是CategoryName?这个答案完全错误。使用类别滑动具有未定义的行为。