【发布时间】:2012-09-11 07:14:29
【问题描述】:
我的问题很简单。我想在 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 长度] !
是否有可能覆盖 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 方法。
问候,
尼拉夫
【问题讨论】:
标签: iphone nsmutabledata