0

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

测试.m:

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

主.m:

NSError *error;

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

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

警告:从不同的 Objective-C 类型传递 'initWithContentsOfURL:error:' 的参数 2 时,不兼容的 Objective-C 类型 'struct NSError **',预期的 'struct NSDictionary **'

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

4

1 回答 1

5

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

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

尝试投射 to 的[Test alloc]返回Test*

IE


Test *t = [(Test*)[Test alloc] initWithContentsOfURL:[NSURL fileURLWithPath:@"/"] error:&error];
于 2010-04-07T11:07:42.410 回答