gpt4 book ai didi

objective-c - 在类别中添加初始值设定项

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

我正在尝试在这样的类别中添加 init 方法:

@interface NSError (message)

+(id)errorWithCode:(NSInteger)code message:(NSString*)message;
-(id)initWithCode:(NSInteger)code message:(NSString*)message;

@end

- @implementation NSError(消息)

+(id)errorWithCode:(NSInteger)code message:(NSString*)message;
{
return [[[[self class] alloc] initWithCode:code message:message] autorelease];
}

-(id)initWithCode:(NSInteger)code message:(NSString*)message;
{
NSMutableDictionary * userInfo = [NSMutableDictionary dictionary];
[userInfo setValue:message forKey:NSLocalizedDescriptionKey];

self = [super initWithDomain:@"some.domain" code:code userInfo:userInfo]; // problem line

return self;
}

@end

但它提示 NSObject 类的“ super ”存在并且不响应 initWithDomain...我尝试将 super 转换为 NSError 但编译器说这是不允许的。

如果我运行它,我会收到“无法识别的选择器发送到...”,所以这不仅仅是一个转换错误。

最佳答案

您没有继承NSError,而是向同一个类添加了新代码。因此,您可能应该调用 self,而不是 super

关于objective-c - 在类别中添加初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10495465/

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