-2

Xcode当我使用默认模板开始一个新项目时,
我会像这样测试代码

-(void)test{
    NSArray *a = [[NSArray alloc] init];
    [a  nosuchmethod];        
}

Xcode显示错误,"No visible....." 但在另一个现有项目中,我再次测试这些代码,但xcode只抱怨警告

为什么会这样?有什么设置吗?

4

1 回答 1

1

id对于启用 ARC 的项目/文件,除了对象之外,您不能调用不存在的方法。这不适用于非 ARC 项目。此外,新项目默认启用 ARC,因此您无法在新项目中执行此操作。

例如,这在启用 ARC 的项目/文件中是不允许的

NSString *str = @"str";
[str appendString:@"str"];

您可以这样做,但如果执行此行,它将崩溃/抛出异常

[(id)str appendString:@"str"];
于 2013-05-07T10:11:51.253 回答