[英]Objective C Compiler Errors
我是目标C的新手。我正在为编程比赛编写代码。 为此,我正在XCode IDE中编写代码,然后将代码上传到他们的网站上。 我的机器上可以运行的代码在网站上提供了编译器错误。
例如,在XCode中对我有用的数组元素的简单分配。
NSArray *itemArray;
NSString *feet;
feet = itemArray[0];
上面的行生成错误“从类型“ struct NSArray”分配给类型“ struct NSString *”时不兼容的类型”
我必须使用以下语法使其起作用。
feet = [itemArray objectAtIndex:0];
相似,for循环。
for (int i = 0; i <= count - 1; i++) {
<#statements#>
}
这给出了错误“仅在C99或C11模式下允许for循环初始声明”。 我需要进行以下更改才能使其正常运行。
int i;
for (i = 0; i <= count - 1; i++) {
<#statements#>
}
谁能建议我如何配置XCode IDE,以便可以在网站上编写与编译器兼容的代码?
显然,网站上受支持的Objective C版本是GCC 4.4.5,我想知道是否可以在XCode中对其进行配置
在第一个示例中,您只是声明了变量,但是您需要为数组创建一个实例并将其填充一些元素。
NSArray *itemArray = @[@"item1-String", @"item2-String"];
NSString *feet = itemArray[0];
否则,尝试获取数组的第一个元素(使用itemArray[0]
或[itemArray objectAtIndex:0]
将导致问题,因为未实例化数组。
请注意,如果您的数组是动态添加的(稍后添加/删除元素),请使用NSMutableArray
类型
NSMutableArray *itemArray = [@[@"item1-String", @"item2-String"] mutablecopy];
而且,如果您不知道数组中包含多少个项目,请在尝试获取element之前检查其count
:
NSString *feet;
if (itemArray.count <= 3) { //Is there at least 3 elements?
feet = itemArray[2]; //then get third element
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.