gpt4 book ai didi

cocoa - 错误 "Create a concrete instance!"

转载 作者:行者123 更新时间:2023-12-03 16:07:09 26 4
gpt4 key购买 nike

我在同一代码中遇到了另一个问题......我收到此错误:

initialization method -initWithCharactersNoCopy:length:freeWhenDone: cannot be sent to an abstract object of class NSString_RegEx: Create a concrete instance!

但我不明白这个错误或我应该做什么...

编辑:

NSString *pageContent = [[NSString alloc] initWithData:pageContents encoding:NSASCIIStringEncoding];
NSString_RegEx *pContent = [[NSString_RegEx alloc] initWithString: pageContent];

最佳答案

你看到这个是因为 NSString 是一个类簇。请参阅 Apple 文档 here一般性解释,以及 here有关 NSString 子类化的专门注释。基本上,NSString 是一个抽象类,没有存储字符的方法,各种 -initWith… 方法都根据初始化的方法返回 NSString 的不同具体子类。通常,当您使用 NSString 时,这是完全透明的。但是,如果您想继承 NSString 的子类,则至少必须实现基本方法(-length 和 -characterAtIndex:)以及您想要的任何 init 方法(加上,显然,有一种存储字符串字符的方法) )。

如果您只想向 NSString 添加功能,通常不需要子类化。首先,您应该检查一个类别,或者一个对 NSString 进行操作的函数,或者一个包含 NSString 的类上的方法是否会工作得更好。例如,参见RegexKitGoogle Toolbox For Mac ,两者都使用 NSString 上的类别实现正则表达式支持。

关于cocoa - 错误 "Create a concrete instance!",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2569277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com