您的位置:首页 > 移动开发 > Swift

Swift开发笔记1.《Swift开发指南》计算器实战项目的相关心得

2014-12-29 14:47 621 查看
本人是个IOS开发新手,之前没有接触过Objective-C语言,直接从最新的Swift学起,进行IOS8的学习开发。由于Swift语言是一门全新的语言,网上的资料很少,遇到问题百度搜到的都是英文的页面。通过一段时间的学习,我基本掌握了Swift的语法,坚持使用Swift进行IOS8的开发对我们提升自己的Swift编程能力很有帮助。相信很多人学习Swift语言都选择了《Swift开发指南》这本书,我觉得这本书写的不错,但是在自己动手演练本书21章的计算器项目时,遇到了一些问题,书中并没有给予纠正,网上下载的示例代码中也没有改正。下面说说我在手敲这个项目时的心得体会,希望能给其他Swift爱好者带来帮助。

我使用的是APP store中下载的最新版的Xcode6.1.1.一般的项目都是由底层向顶层开发,按照书中的步骤,业务逻辑层中的类CalcLogic中应用了之前定义的一个枚举类型,但是实例名使用了Operator(书中是大写的,网上代码里小写,都会报错,因为operator是系统关键字,所以我把实例名换成了operator1),代码如下:

<pre name="code" class="cpp">class CalcLogic{
    //保存上一次的值
    var lastRetainValue:Double
    //最近一次选择的操作符
    var operator1:Operator
    //临时保存MainLabel内容,为true时,输入数字MainLabel内容被清0
    var isMainLabelTextTemporary:Bool
...
}



之后在定义方法calculateByTag 时我遇到了一个让我哭笑不得的错误,calculateByTag中有一个switch开关语句,其中在case .Divide中有一个if else判断语句,我按照之前的编程习惯,把else单独放在一行,后来一直报错,直到我查阅了书籍,发现书中的else和前后大括号的写法都是“
} else { ”,改成这样的形式后错误消失了,在赋值语句中同样会遇到报错,一个=前后都应该有空格,所以奉劝大家在做Swift开发的时候一定要养成敲空格的好习惯T T。代码段如下

func calculateByTag(tag:Int,withMainLabelString mainLabelString:String)->String{
    var currentValue = (mainLabelString as NSString).doubleValue
        switch operator1{
        case .Plus:
            lastRetainValue += currentValue
        case .Minus:
            lastRetainValue -= currentValue
        case .Multiply:
            lastRetainValue *= currentValue
        case .Divide:
            if currentValue != 0 {
                lastRetainValue /= currentValue
            } else {
            operator1 = .Default
                isMainLabelTextTemporary = true
                return "错误"
            }
        default: lastRetainValue = currentValue
        }


另外一点要注意,switch中的默认关键字是小写的“default”,书中写成了大写的,这是错误的,不要跟case中的.Default搞混,这个大写开头的Default是我们之前在Operator枚举类型中自己定义的。书中代码引用的变量都没有加强制拆封,也就是“!”,但是在实际编程中Xcode会提示你加上“!”。

同样是这个方法中,Operator的静态方法fromRaw在Xcode中提示已经被取代了!Xcode帮我改成了如下格式:

operator1 = Operator(rawValue: tag)!


表示层开发中没有遇到很大的难点,有以下几点需要注意的:首先,在给tag赋值的时候我没找到“tag”,后来发现是属性监测器工具栏太长了屏幕没有显示完全,往下拖一点就找到了(原谅我是个新手),其次,书中的Xcode应该不是最新版本,因为在Xcode6.1.1中的“辅助编辑器”图标已经变了,大家注意一下,现在的图标是两个圆圈的样子,如图所示:



最后完成图如下:



遗憾的是,我完成的计算器的小数点按键在点击时会报错,目前还没找到原因,不知道大家的作品是怎么样的呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: