我已经有了另一个问题,在相同的代码...我得到这个错误:

初始化的方法-initWithCharactersNoCopy:长:freeWhenDone:不能被送到一个抽象的象的类NSString_RegEx:创建一个具体实例!

但我不理解的错误或我应该做什么...

编辑:

NSString *pageContent = [[NSString alloc] initWithData:pageContents encoding:NSASCIIStringEncoding];
NSString_RegEx *pContent = [[NSString_RegEx alloc] initWithString: pageContent];
有帮助吗?

解决方案

你看到这一点,因为NSString是一类的集群。看苹果的文档 在这里, 对于一般的解释, 在这里, 注意到具体而言,在继承NSString.基本上,NSString是一个抽象的类没有储存方法的文字,以及各种initWith...方法的所有返回不同的具体类的NSString基于该方法的初始化。通常,当你使用NSString,这是完全透明的。然而,如果您想要子类NSString,你必须至少实现的基本方法(长和characterAtIndex:)加任何init方法要有(加,显然,有一种方式储存的字符串)。

如果你只是想增加功能NSString,继承通常不是必要的。首先,你应该检查,如果一类或功能的操作上的一个NSString的方法,或在一类包含NSString将工作做得更好。例如,请参阅 RegexKit谷歌"工具箱"Mac, ,这两者都实现经常表达的支持使用一个类别上NSString.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top