$0 $1表示什么 swift_scrollview 嵌套 swift swift 4.0 - CSDN
  • swift 自动为闭包提供了参数缩写功能,可以直接通过 0001等来表示闭包中的第一个第二个参数,并且对应 的参数类型会根据函数类型来进行推断。如下代码: 不使用 000 1来代替闭包参数 let sortedArray = ...

    swift 自动为闭包提供了参数缩写功能,可以直接通过 01等来表示闭包中的第一个第二个参数,并且对应
    的参数类型会根据函数类型来进行推断。如下代码:

    不使用 $0、$1来代替闭包参数

    let sortedArray = [2,3,5,6,7]
    let tempSum = sortedArray.sorted { (a, b) -> Bool in
    return a > b
    }
    print(sortedArray) //[7, 6, 5, 3, 2]

    使用$0 ,$1

    let sortArray = sortedArray.sorted(by: {$0 < $1})
    print(sortArray) //[2, 3, 5, 6, 7]

    通过上面的代码可以发现使用$0、$1的话,参数类型可以自动判断,并且 in关键词可以省略,也就是
    只用写函数体就可以了。

    展开全文
  • Swift 自动对行内闭包提供简写实际参数名,你也可以通过 0,0 , 1 , $2 等名字来引用闭包的实际参数值。如果你在闭包表达式中使用这些简写实际参数名,那么你可以在闭包的实际参数列表中忽略对其的定义,并且简写实际...

    Swift 自动对行内闭包提供简写实际参数名,你也可以通过 0,1 , $2 等名字来引用闭包的实际参数值。

    如果你在闭包表达式中使用这些简写实际参数名,那么你可以在闭包的实际参数列表中忽略对其的定义,并且简写实际参数名的数字和类型将会从期望的函数类型中推断出来。 in 关键字也能被省略,因为闭包表达式完全由它的函数体组成:

    let numbers = [3,2,4,1,5,7,6];
    
    var sortedNumbers = numbers.sorted(by:{$0 < $1});
    print(sortedNumbers);//输出为:[1, 2, 3, 4, 5, 6, 7]
    
    sortedNumbers = numbers.sorted(by:{$1 < $0});
    print(sortedNumbers);//输出为:[7, 6, 5, 4, 3, 2, 1]

    可以看出,可以用01、20指代第一个参数,12指代第三个参数,以此类推n+1n后的数字代表参数的位置,一一对应。

    展开全文
  • 本人是个IOS开发新手,之前没有接触过Objective-C语言,直接从最新的Swift语言学起,进行IOS8的学习开发。由于Swift语言是一门全新的语言,网上的资料很少,遇到问题百度搜到的也全是英文页面。通过一段时间的学习,...

            本人是个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中的“辅助编辑器”图标已经变了,大家注意一下,现在的图标是两个圆圈的样子,如图所示:




           最后完成图如下:




    遗憾的是,我完成的计算器的小数点按键在点击时会报错,目前还没找到原因,不知道大家的作品是怎么样的呢?



    展开全文
  • Swift - Swift生成随机数

    2015-05-22 16:26:39
    Swift生成随机数

    在Swift中生成随机数有很多方法可以达到目的

    这里介绍最简单的两种方法,第一种是使用arc4random()函数, 第二种是使用arc4random_uniform()函数


    1.  func arc4random() ->UInt32

    arc4random()

    如果要生成一个生成在一定范围内的随机整数,可以这么写:

    func randomIn(#min: Int, max: Int) -> Int {
        return Int(arc4random()) % (max - min + 1) + min
    }
    该方法会生成[min, max]范围内的随机整数

    如果需要生成随机浮点数,基本思路相同,只不过多了一步

    因为arc4random返回值的类型为UInt32, 也就是32位整形, 所以其返回的最大值用十六进制表示就是0xFFFFFFFF

    所以我们可以这样得到一个[0, 1]范围内的随机小数

    Float(arc4random()) / 0xFFFFFFFF

    
    

    将生成的小数适配到我们需要的范围中

    func random() -> Float {
        return Float(arc4random()) / 0xFFFFFFFF
    }
    func randomIn(#min: Float, max: Float) -> Float {
        return random() * (max - min + 1) + min
    }


    2. func arc4random_uniform(_:UInt32) ->UInt32

    arc4random_uniform(4)

    可以生成[0, 4)的随机整数



    展开全文
  • 1什么SwiftDate? (1SwiftDate是一个使用Swift语言编写的Date的封装库,使用它可以很方便的对日期进行处理,方便我们工程对日期显示的格式需求。 (2) SwiftDate功能强大,本身swift相对Objective-C,语法...
  • 本文介绍几点Swift 3.0相对于Swift 2.0的一些改变和使用方法 关于Swift 3.0的具体使用指南大家可以去阅读Swift 3.0中文文档(Swift 3.0 中文文档)和Swift 3.0官网文档(Swift 3.0 官网文档)
  • 1、说说你认识的Swift什么Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。 2、举例说明Swift里面有哪些是 ...
  • Swift4.0 study1 语法

    2018-01-19 10:29:45
    swift学习第一天 :语法 1.常量和变量 var 修饰变量 (可以修改) let 修饰常量(不可变) print代理oc中的NSLog输出 2.数据类型转换:Swift是强语言(OC是弱语言)故进行转换时必须指明数据类型,即...
  • swift3转swift5Swift 5 has released and is available with Xcode 10.2. Today we’ll be discussing what it brings to the table. Swift 5已发布,可用于Xcode 10.2。 今天,我们将讨论它带来的好处。 Swift 5...
  • Swift let, var let 声明为不可变类型 var 声明为可变类型 ...去 NS 化,swift 会尽可能的把常用类型的...= 0/1 NSInteger –&gt; Int CGFloat –&gt; Float Double –&gt; Double NSString/N...
  • 每当看到新的编程语言我总是会有相当大的兴趣,是的,Swift 3是一门『新语言』,因为它看起来,怎么都不像过往的 Swift。打开一个老的项目时,发现满目疮痍,基本上能标红的代码全被标红了。先来个截图提提神: 图...
  • Swift_3.0 相对于 Swift_2.2 版本发生了哪些的变化。本文件将以最直观的代码对比以及文字分析阐述。
  • swift enum高级用法

    2019-07-20 13:09:17
    和switch语句类似,Swift中的枚举乍看之下更像是C语言中枚举的进阶版本,即允许你定义一种类型,用于表示普通事情中某种用例。不过深入挖掘之后,凭借Swift背后特别的设计理念,相比较C语言枚举来说其在实际场景中的...
  • 1.swift什么?OpenStackObject Storage (Swift) 是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。 swift使用标准化的服务器存储 PB 级可用数据。但它并不是文件系统 (file system) ,实时的数据存储系统...
  • swift语言特点

    2018-04-13 23:09:31
    1swift属于类型安全的语言,不同类型的数据不能直接相加,必须进行类型转换2、swift有可选类型的数据,可以是nil,也可以有值,避免了有特殊代码代替不存在,避免错误,这是swift的一大进步,不错。3、swift在有...
  • Swift 高级运算符

    2014-06-12 23:31:13
    除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。   不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的。溢出行为会被捕获并报告为...
  • swift中optional的使用

    2018-04-13 21:36:22
    在c/c++中常用0、null来代表没有值,swift中发展出optional来替代这种有风险的做法? 和 ! 都可以用来定义optional的变量!还可以用来强迫解包,不过用!定义的optional表示肯定有值,用!就是省略了那些不必要的检查...
  • Swift语言 1小时速学教程写在前面的话有些人可能想, 呵呵, 1小时学一门语言, 你不是搞笑吧, 我想说, 是的, 完全可以, 就要看你怎么学了要想在1小时内学会swift, 你要有一个前提和一个目标, 前提就是你已经熟练掌握了...
  • swift学习笔记1

    2018-01-10 12:19:27
     var str1 = "vincent"  var i=5  var 陈文 = 4//(不推荐使用中文作为变量)  //swift 的每一句语句后面可以不使用 ";" ,用了也可以,看个人习惯吧  //以上可看出swift中可以不标注数据类型,编译器自动...
  • 在苹果的开发文档中对Array还提供了其他的操作算法: ...array.sort{$0 $1} println(array) 此时打印出:[2, 3, 4, 5] 其实sort大括号里面是一个闭包,这个以后再学习。 如果倒叙排列,代码如下: array.sort
1 2 3 4 5 ... 20
收藏数 21,311
精华内容 8,524
关键字:

$0 $1表示什么 swift