美文网首页Swift开发学习
Swift3.0中遇到的问题

Swift3.0中遇到的问题

作者: 践行者_Leng | 来源:发表于2017-08-28 22:21 被阅读82次

    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的协议,改成如下既可以:

    持续更新中...

    相关文章

      网友评论

        本文标题:Swift3.0中遇到的问题

        本文链接:https://www.haomeiwen.com/subject/zdhndxtx.html