Swift3.0中遇到的问题

1.0 Expected expression

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

2.0  '%'  is unavailable: Use truncatingRemainder instead


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

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

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

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


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

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

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

通过上面的 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的错误使用(没有去除掉命名空间,导致加载控制器失败,从而导致奔溃)

修改后的截图

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

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

持续更新中...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容