扩展NSMutableData类

时间:2012-09-11 07:14:30

标签: iphone nsmutabledata

我的问题很简单。我想在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'- reason' * - 仅为抽象类定义的长度。定义 - [TestNSMutableData length]!

是否有可能覆盖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方法。

此致

Nirav

1 个答案:

答案 0 :(得分:1)

NSMutableData可能是class cluster,有点hard to subclass。为什么不使用类别来添加自定义-writeToFile方法?