在静态库中对类进行子类化

时间:2013-10-24 09:42:10

标签: ios iphone objective-c

今天我遇到了一个奇怪的问题。我在我的项目中使用OAuthConsummer连接到Twitter。这个Consummer有几个版本,在我的项目中,它有一些头文件(.h)和一个扩展名为.a的文件。我想继承一个名为“OAMutableURLRequest”的类并重写一些旧方法,因此我添加了两个文件:头文件和带有重写方法的文件夹文件。这个解决方案适合我很长一段时间。 但是,今天在使用Xcode 5.0.1构建在iOS 7上时,我的应用程序崩溃了,错误表明我的重写方法不存在(NSInvalidArgumentException)。

总而言之,我的问题是:我怎样才能将属于只包含头文件和文件的库的类子类化.a?

1 个答案:

答案 0 :(得分:1)

是的,你可以!如果你考虑Apple框架,除了头文件和预编译库之外别无其他......

如果您在iOS7中遇到运行时崩溃,请检查某些方法是否已被删除或更改,或者您是否正在通过超类的实例调用子类的方法...如果您想完全覆盖方法行为并且不要关注原始类的方法实现你可以在原始类上创建一个类,注意!因为您将无法访问该方法的原始实现,并且在类别中无法添加新的类成员(ivar)!但是如果方法存在于超类

中,你总是可以调用超类实现