-3

如果我编写以下函数,我会在第三行收到警告和错误。

int myYear (NSString *timevar)
{
if ([timevar isEqualToString:@"yr"]) {
    return ...
}
}

Xcode 说

  1. 语义问题:函数'If'的隐式声明......
  2. 解析问题:预期为 ';' 表达后

我究竟做错了什么?

4

2 回答 2

2

这是因为ifis 关键字,Objective C 中的关键字区分大小写*。其他关键字也是如此,例如int.

// Use lowercase "i" in the "if"
if ([timevar isEqualToString:@"yr"]) {
    return ...
}


*这不是一个通用规则:例如,VB.NET 将同时接受ifIf

于 2012-11-14T19:45:52.693 回答
1

Objective-C 是区分大小写的语言,所有保留字必须小写,

语义问题:函数'If'的隐式声明......:
解析问题:预期';' 在表达式之后,
因为您编写If而不是if编译器假设您正在调用一个名为If. 因此它需要一个分号;

于 2012-11-14T19:53:13.977 回答