func decideLeapYear(year: Int) -> Bool{
var lyear: Bool = false
if(year<1582){
if(((year/4)%1)==0){
lyear = true
}
}
else if(year>=1582)
{
if(((year%4)==0) || (year%400==0) && ((year%100)!=0)){
lyear = true
}
}
return lyear
}
在 else if
语句的 if
语句末尾,Xcode抛出此错误:
无法强制解包非可选类型'Int'的值
当它到达声明时:
((year%100)!=0))
任何人都可以解释为什么以及如何解决这个问题?
2 回答
这是因为编译器认为
((year%100)!=0))
实际上是((year%100)! = 0))
,因此尝试解包(year%100)!
.解决方案是在
!=
之前添加一个空格:另外,只需注意:您不需要将条件括在括号中,代码中的空格字符也不需要任何费用 . 所以我建议你的代码添加一些空气,如下所示:
我还删除了bool变量,使代码更清晰 .
或作为NSDate扩展: