Swift3.0中遇到的问题

1.0 Expected expression

我这里是因为三目运算符的格式写错了,所以报错。改为:只要将?号前后各加一个空格即可

2.0  '%'  is unavailable: Use truncatingRemainder instead


这是因为我直接浮点类型对浮点类型取模,但是在Swift3.0中是不行的。改为:通过truncatingRemainder 函数去取模

Swift3.0中遇到的问题_第1张图片

3.0  Binary operator '%' cannot be applied to operands of type 'Int' and 'Double'

这是因为 Int类型 的 number不能直接通过运算符%去取模,改为:先将Int类型 的number转为CGFloat后,再通过 truncatingRemainder 函数去取模

Swift3.0中遇到的问题_第2张图片

3.1  Binary operator '/' cannot be applied to operands of type 'Int' and 'Double'


这是因为我直接用Int类型的number通过运算符 /  去取余了,不能直接去这样操作。改为:直接将Int类型的number转为CGFloat 浮点类型后再次取余

Swift3.0中遇到的问题_第3张图片

4.  Cannot assign value of type '()' to tyoe 'Int'

Swift3.0中遇到的问题_第4张图片

出现上面的报错信息是因为我在上面的赋值语句中连续赋值,只需要将其中的等号去除即可。因为在Swift中禁止连续赋值,而且赋值操作是并不返回任何值的,这个特性防止程序员将 c == 6的判断误写成c = 6,减少了常规的编码错误。

Swift3.0中遇到的问题_第5张图片

通过上面的 2  3 和 4 中的报错信息不难看出Swift是一门强语言,至少相对OC来说。

5.0 获取屏幕的宽高度是 UIScreen.main.bounds.width 和 UIScreen.main.bounds.height  不能写成UIScreen.init().bounds.width 和 UIScreen.init().bounds.height ,否则得到的永远都是0, 因为UIScreen是一个单例,只能通过.main去获取。

5.0 AnyClass的错误使用(没有去除掉命名空间,导致加载控制器失败,从而导致奔溃)

Swift3.0中遇到的问题_第6张图片

修改后的截图

Swift3.0中遇到的问题_第7张图片

6.0 'weak' may only be applied to class  and class-bound protocol types, not '你的代理方法名字'

Swift3.0中遇到的问题_第8张图片

这是因为我自定义的代理没有继承NSObject的协议,改成如下既可以:

Swift3.0中遇到的问题_第9张图片

持续更新中...

你可能感兴趣的:(Swift3.0中遇到的问题)