1

我的问题很简单。我想在 iOS 中扩展 NSMutableData 类并覆盖 NSMutableData 中定义的一些方法。例如,我想用我自己的包装器实现覆盖 writeToFile 函数。是否有可能做到这一点?

我的 TestNSMutableData.h

@interface TestNSMutableData : NSMutableData
-(BOOL)writeToFile:(NSString*)path atomically:(BOOL)useAuxiliaryFile;
@end

我的 TestNSMutableData.m

@implementation TestNSMutableData
-(BOOL)writeToFile:(NSString*)path atomically:(BOOL)useAuxiliaryFile{
  //Some activity on the data and modifying it
  return [self writeToFile:path atomically:useAuxiliaryFile];
}

当我尝试在我的一个项目中使用 TestNSMutableData 时

TestNSMutableData myData;
myData = [TestNSMutableData alloc]init];
[myData writeToFile:path atomically:YES]

我收到如下错误

NSInvalidArgumentException'- 原因' * - 仅为抽象类定义的长度。定义 -[TestNSMutableData 长度] !

是否有可能覆盖 Native 类中定义的方法,例如 NSMutableData ?

更新 我为 writeTofile 创建 NSString 类类别方法

我的实现是

-(BOOL)writeToFile:(NSString*)path atomically:(BOOL)useAuxiliary encoding:(NSStringEncoding)enc error:(NSError**)error{


 //Manipulating NSString 
  self = manipulatedString;
  return [super writeToFile....];

}

我收到警告“NSObject 可能无法响应‘writeToFile’函数。这在技术上是正确的,因为 NSString 是从 NSObject 派生的,而 NSObject 没有 writeToFile 函数。

我想要的是在文件中写入操纵的字符串,而不是实际的字符串。

有没有办法从上述函数调用 NSString writeToFile 方法。

问候,

尼拉夫

4

1 回答 1

1

NSMutableData可能是一个类簇,使得子类化有点困难。为什么不使用类别来添加自定义-writeToFile方法呢?

于 2012-09-11T07:29:07.507 回答