• Swift-(do/repeat)while循环

    2016-07-31 18:13:32
    1. while循环 ...swift的 while 循环while后的圆括号可以省略 只能以bool作为条件语句, 没有非零即真, 只有 true和false 如果只有条指令while后面的大括号不可以省略 //OC: //格式:while(循环保持条件){

    1. while循环

    • OC的 while 循环

      • 格式:while(循环保持条件){需要执行的语句}
      • 如果只有一条指令while后面的大括号可以省略
      • 条件语句判断非零即真
    • swift的 while 循环

      • while后的圆括号可以省略
      • 只能以bool作为条件语句, 没有非零即真, 只有 truefalse
      • 如果只有条指令while后面的大括号不可以省略
    //OC:
    //格式:while(循环保持条件){需要执行的语句}
    int i = 0;
    int sum = 0;
    while (i <= 10) {
        sum = i++;
    }
    //NSLog(@"%d",sum);
    //输出结果:10
    
    int i = 0;
    int sum = 0;
    while (i <= 10)
    sum = i++;
    NSLog(@"%d", sum);
    //输出结果:10
    //Swift:
    //0.while后的圆括号可以省略
    //1.只能以bool作为条件语句
    //2.如果只有条指令while后面的大括号不可以省略
    var i:Int = 0
    var sum:Int = 0
    while (i <= 10) {
        sum = i++ // 推荐写法 i += 1
    }
    print("\(sum)")
    //输出结果:10
    
    var i1:Int = 0
    var sum1:Int = 0
    while i1 <= 10 {
        sum1 = i1++ // 推荐写法 i += 1
    }
    print("\(sum1)")
    //输出结果:10

    2. do/repeat while循环

    • Swift2.0之后变为 do while, 变为repeat while, 而do用于捕捉异常
    // oc
    int i = 0;
    int sum = 0;
    do {
        sum = i++;
    } while (i <= 10);
    NSLog(@"%d", sum);
    //输出结果:10
    
    int i = 0;
    int sum = 0;
    do
    sum = i++;
    while (i <= 10);
    NSLog(@"%d", sum);
    //输出结果:10
    //如果只有一条指令 do 后面的大括号可以省略
    // swift
    var i2:Int = 0
    var sum2:Int = 0
    repeat{
        sum2 = i2++ // 推荐写法 i += 1
    }while(i2 <= 10)
    print(sum2)
    //输出结果:10
    
    var i3:Int = 0
    var sum3:Int = 0
    repeat{
        sum3 = i3++ // 推荐写法 i += 1
    }while i3 <= 10
    print(sum3)
    //输出结果:10
    展开全文
  • 转载请注明:关东升的博客 Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil,不进行错误处理。let contents = NSString...
    


    原创文章,欢迎转载。转载请注明:关东升的博客

     

    Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil,不进行错误处理。

    let contents = NSString(contentsOfFile: filePath, 
    
            Êencoding: NSUTF8StringEncoding, error: nil)//error参数传递一个nil
    

    或者

    var err: NSError?    
    
    let contents = NSString(contentsOfFile: filePath, 
    
            Êencoding: NSUTF8StringEncoding, error: &err) 
    

    不好的编程习惯,由于Objective-CSwift 1.x没有强制处理机制,因此一旦真的发生错误,程序就会发生崩溃。

    同样的从文件中读取字符串示例,如果使用Swift2错误处理模式代码如下:

    import Foundation
    
     
    
    do {        //要做一些操作
    
        let str = try NSString(contentsOfFile: filePath, 
    
                                 Êencoding: NSUTF8StringEncoding)    //要尝试做的事情
    
    } catch let err as NSError { //如果失败则进入catch代码块
    
        err.description
    
    }
    

    do-try-catch这种错误模式与Java中异常处理机制非常类似,本意就是尝试(try)做一件事情,如果失败则捕获(catch)处理。

     

    捕获错误

    完整的do-try-catch错误处理模式的语法如下:

    do {
    
        try 语句
    
      成功处理语句组 
    
    } catch 匹配错误 {
    
        错误处理语句组
    
    } 
    

    try 语句中可以产生错误,当然也可能不会产生错误,如果有错误发生,catch就会处理错误。catch代码块可以有多个,错误由哪个catch代码块处理是由catch后面的错误匹配与否而定的。错误类型的多少就决定了catch可以有多少。我们先介绍一下错误类型。

     

    错误类型

    Swift中错误类型必须遵从ErrorType协议,其次考虑到错误类型的匹配,它应该被设计成为枚举类型,枚举类型非常适合将一组相关值关联起来。

    如果我们编写访问数据库表程序,实现对表数据插入、删除、修改和查询等操作,我们会需要类似如下代码的错误类型:

    enum DAOError: ErrorType {
    
        case NoData
    
        case PrimaryKeyNull
    
    }
    

    NoData表示没有数据情况,PrimaryKeyNull表示表的主键(Primary Key)为空情况。

    那么我们就可以通过如下代码捕获错误。

    do {  
    
        //try 访问数据表函数或方法
    
    } catch DAOError.NoData {
    
        print("没有数据。")
    
    } catch DAOError.PrimaryKeyNull {
    
        print("主键为空。")
    
    }
    

     

     

    欢迎关注关东升新浪微博@tony_关东升。
    关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
     

    更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
    智捷课堂论坛网站:http://51work6.com/forum.php

     

    展开全文
  • swift之局部作用域do

    2020-05-17 13:26:34
    //OC里直接可以用{}申明局部作用域,在swift里可以用 do {} do { var test:String="test1" print(test) } do { var test:String="test1" print(test) }
    
    //OC里直接可以用{}申明局部作用域,在swift里可以用 do {}
    
    do {
        var test:String="test1"
        print(test)
    }
    
    do {
        var test:String="test1"
        print(test)
    }
    
    展开全文
  • swift while、do-while循环

    2016-01-15 17:15:33
    // while 循环执行一系列语句直到条件变成 false 。while 循环使用于第一次迭代时迭代值未知的情况下 ...// do-while 循环:在每次循环结束时判断条件是否为 true;    //while 循环从判断一个循环条

            

    //        while 循环执行一系列语句直到条件变成 false while 循环使用于第一次迭代时迭代值未知的情况下

    //        while 循环:在每次循环开始时判断条件是否为 true

    //        do-while 循环:在每次循环结束时判断条件是否为 true

            

            //while 循环从判断一个循环条件开始:如果条件为true,重复执行一组代码,直到条件变为false

            

            while whilecondition{

                

            }

            

            //do-while while 循环的另一种形式,它和 while 的区别是:先执行一次循环的代码块,再在判断循环条件,然后重复执行循环的代码块直到循环条件为 false

            

            do {

                

            } while whilecondition



    展开全文
  • 完整的do-try-catch错误处理模式的语法如下: do {    try 语句    成功处理语句组   } catch 匹配错误 {    错误处理语句组   } catch 匹配错误 {    

    完整的do-try-catch错误处理模式的语法如下:

    do {

        

                try 语句

        

                  成功处理语句组

        

    } catch 匹配错误 {

        

                错误处理语句组

        

    }

    catch 匹配错误 {

        

                错误处理语句组

        

    }


    在try 语句中可以产生错误,当然也可能不会产生错误,如果有错误发生,catch就会处理错误。catch代码块可以有多个,错误由哪个catch代码块处理是由catch后面的错误匹配与否而定的。错误类型的多少就决定了catch可以有多少。

    展开全文
  • 包含常量与变量、基本数据类型,以及Swift语言中的新数据类型—元组型和可选型的内容。同时还讲解了运算符和表达式、流程控制语句、字符和字符串、集合类型、函数和闭包。此外,Swift面向对象的枚举、结构体、类,...
  • do { try functionWillThrowError() } catch { // deal with error }
  • Swift中switch和OC中的不同之处
  • Swift:0.while后的圆括号可以省略1.只能以bool作为条件语句2.如果只有条指令while后面的大括号不可以省略Swift2.0之后变为 repeat while, do用于捕捉异常0.while后的圆括号可以省略1.只能以bool作为条件语句2.如果...
  • Swift3.0异常 Error
  • Swift异常处理体现了函数式语言的特性,因此我们可以传一个会抛出异常的函数闭包(高阶函数)作为参数传到另一个函数中(父函数),父函数可以在子函数抛出异常时直接向上抛出异常,这时用rethrow关键字表示引用闭包...
  • Swift入门》关于Swift

    2016-04-05 20:29:14
    Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 使用安全的编程模式并添加了很多新特性,这将使编程更简单,扩展性更强,也更有趣。Swift 是使用基于安全、性能和软件设计模式的现代方法生成的...
  • R.swift可以很方便的管理IOS各种资源, 有点类似Android中的R类…. 先来看看效果图: 库的首页: https://github.com/mac-cain13/R.swift安装方法: http://www.jianshu.com/p/0c97ef3cdc38 安装需要2点: 1:需要...
  • Swift关键字总结上篇

    2019-06-20 11:11:21
    Swift 中有多少关键字? 在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数字符号#开头的关键字, 以及特定上下文环境使用的关键字。 本文中涉及的代码...
  • Swift 中的关键字详解
  • 神奇的 Swift 错误处理

    2016-08-01 10:54:02
    原文:Magical Error Handling in Swift 作者: Gemma Barlow 译者:kmyhy Swift 中的错误处理从 O-C 沿袭而来,但 Swift 1.0 之后逐渐发生了巨大改变。重要的改变发生在 Swift 2,它率先使用了“处理非异常的...
  • 1.3 Swift语言演进

    2020-06-15 13:34:27
    1.3 Swift语言演进 小荷才露尖尖角,早有蜻蜓立上头 长风破浪会有时,直挂云帆济沧海 俗话说得好:要想掌握一门学科先关注它的发展史,同样的,要想学好一门语言先看它的进化史。 任何一门卓越的语言,都有其独特...
  • Swift写服务端 — Perfect框架学习(一)一、Perfect简介Perfect是一组完整、强大的工具箱、软件框架体系和Web应用服务器,可以在Linux、iOS和macOS (OS X)上使用。该软件体系为Swift工程师量身定制了一整套用于...
  • 前面说过,React Native作为一个全新的跨平台开发框架,好多东西还不是很成熟,很多原生的控件还不是很完善,于是好多爱好者便自己封装相关的组件,可以使用oc来封装,也可以使用Swift来封装。关于封装的原理,大家...
  • OC与Swift混合使用

    2017-07-11 09:13:02
    随着swift趋向于稳定,越来越多的公司启动的新项目也想使用swift过把瘾,使用swift的好处与弊端不再赘述。目前版本是swift3.0,而且Xcode9beta版中已经更新到swift4.0。使用swift开发是大趋势,这里从以下几个方面看...
1 2 3 4 5 ... 20
收藏数 15,961
精华内容 6,384