objective-c - 将 NSError ** 作为方法参数传递时出现编译器警告

标签 objective-c cocoa compiler-warnings compiler-bug

在过去的 4 个小时里,我一直在为此绞尽脑汁,尝试各种小实验,但我似乎无法弄清楚出了什么问题。这可能是编译器错误吗?

测试.m:

- (id)initWithContentsOfURL:(NSURL *)aURL error:(NSError **)error
{
    if (!(self = [super init])) {
        return nil;
    }
    return self;
}

main.m:

NSError *error;

Test *t = [[Test alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"/"] error:&error];

这是编译器警告(来自 main.m):

warning: incompatible Objective-C types 'struct NSError **', expected 'struct NSDictionary **' when passing argument 2 of 'initWithContentsOfURL:error:' from distinct Objective-C type

我正在使用最新版本的 Xcode 和 Snow Leopard。

最佳答案

我怀疑它选择了不同的选择器实例,initWithContentsOfURL:error: - 可能是 NSAppleScript 中的一个。 。请记住,[NSObject alloc] 返回一个 id

您的代码在运行时是否按预期工作?

尝试将 [Test alloc] 的返回值转换为 Test*


Test *t = [(Test*)[Test alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"/"] error:&error];

关于objective-c - 将 NSError ** 作为方法参数传递时出现编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591820/

相关文章:

swift - 在 Swift 3 中使用 withMemoryRebound 的问题

c++ - 如何让 g++ 为 int i = i 生成错误/警告?

java - 指示开关盒落空

java - 为什么 java 编译器不显示明显除以零的警告?

objective-c - 是否可以防止 Objective-C 中的 POSIX 符号名称污染?

ios - UIScrollView 在从不同的 View Controller 进行 seguing 时具有不同的 y 位置

ios - WatchKit 的用户定义设置

php - 从 iOS 发布到 php 的问题

objective-c - 在 WebView 中显示 zip 文件的内容

objective-c - 使用 NSRange 循环