Xcode5的autoreleasepool错误

时间:2013-12-26 04:05:59

标签: ios objective-c autorelease

我在Xcode5中为下面的代码得到'预期表达'错误。我使用Xcode5创建了一个命令行工具项目。知道这个错误吗?我的构建设置确实已启用ARC。

    #include <stdio.h>

int main(int argc, const char * argv[])
{

   @autoreleasepool {

        NSMutableArray *items = [[NSMutableArray alloc] init];

        [items addObject:@"One"];
        [items addObject:@"Two"];
        [items addObject:@"Three"];

        [items insertObject:@"Zero" atIndex:0];

        items = nil;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:2)

首先消除额外的“@”。

导入基金会:

#import <Foundation/Foundation.h>

下一步:

items = null;

替换了添加到items的对象,这是你想要的吗? 此外,null不是Objective-C构造,而是未声明的标识符。也许它应该是:

items = nil;

以下编译无错误:

#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
    @autoreleasepool {
        NSMutableArray *items = [[NSMutableArray alloc] init];
        [items addObject:@"One"];
        [items addObject:@"Two"];
        [items addObject:@"Three"];
        [items insertObject:@"Zero" atIndex:0];
        items = nil;
    }
}