一些Swift小知识点的整理



之前最开始了解Swift的时候的一些基本的东西,简单的整理一下。

import UIKit
var names = []
class ViewController: UIViewController,UIAlertViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        var stringValue:String!
//        stringValue = "chw"
//        let str11 = stringValue.hashValue
//        var stringValue:Optional<String>
        if let str = stringValue {
            let hashValue = str.hashValue
        }
        let str1 = "swift"
        for k in str1 {
            println(k)
        }

        var dic = [0:0, 1:0, 2:0]
        var newDic = dic
        //Check dic and newDic
        dic[0] = 1
        println(dic)     //[0: 1, 1: 0, 2: 0]
        println(newDic)//[0: 0, 1: 0, 2: 0]

        var arr11:Array = [0,"lll",0]
        var newArr = arr11
        arr11[0] = 1
        //Check arr and newArr
        println(arr11)    //[1, 0, 0]
        println(newArr) //[0, 0, 0]

//        字符串
        let heart = "??"
        println(heart)//??

        //空字符串
        let empty = ""
        let anotherEmpty = String()
        if empty.isEmpty {
            println(" empty ")
        } else {
            println(" not empty ")
        }

        //前缀后缀
        let str11 = "chengHong wei"
        if str11.hasPrefix("ch") {
            println("prefix is ch")
        }
        if str11.hasSuffix("wei") {
            println("suffix is wei")
        }

        //大小写
        let up = str11.uppercaseString
        println(up)//CHENGHONG WEI
        let low = str11.lowercaseString
        println(low)//chenghong wei

//        可选值探究
        var input:String?
        var input1 = "18"
        var age = input1.toInt()
        if age != nil{
            println("your age is " + String(age!))
        } else {
            println("error for input")
        }

//        遍历数组
        let arr = ["1","2","3"]
//        ...相当于[0,2]一个区间,意思就是 0=< i && i<= 2
        for i in 1...arr.count {
            println("arr count is \(arr.count)")
            println("arr object index \(arr[i-1])")
        }
//        ..<是半闭半开区间,意思就是[0,arr.count) (之前是..,现在已经改了)
        for i in 0..<arr.count {
            println(i)
        }
        for var i=0;i<3;i++ {
            println("\(arr)")
        }

//        array加元素
        var arr1 = ["a"]
        arr1 += ["b"]
        arr1 += ["c","d","e"]
        println(arr1)
        println("arr1 is \(arr1)")

        arr1[0] = "f"
        println(arr1)

        var arr20 = [1,2,3,4]
        arr20[0] = 0
        arr20[1...1] = [5,8]//在array[1]这儿插入了5,8两个元素,这个功能仅在区间状态有效,如果a[3] = [5,8] 则会报错
        println(arr20) //[0,5,8,3,4]

//        泛型是如何用来定义容器的存储的。还有一个数组的缩写形式,这个更具有可读性,但本质上是一样的。现在你不能往数组里面添加非Int型的元素。这听起来挺糟糕,但它非常有用。再也不需要用API来记录数组里存储了哪些从某个方法返回或者以属性存储的元素。你可以告诉编译器这些信息,编译器在错误检查方面会更加智能,并且可以提早做出优化。
        let arr2: [Int] = [1,2,3,4] //数组里面只能是int型

        let arr3: [Float] = [1,2,2.3]
        println("arr3 is \(arr3)")

        let arr4: [String] = ["1","chw","love"]
        println("arr4 is \(arr4)")

//        var 可变的数组是可以加元素的,let 声明的是不可加的,也就是可变与不可变数组的意思,在 Objective-C 和 Cocoa 中,您通过选择两个不同的类( NSString 和 NSMutableString )来指定该字符串是否可以被修改,Swift中的字符串是否可以修改仅通过定义的是变量还是常量来决定,实现了多种类型可变性操作的统一。
        var arr5:Array = [1,2,3,"cheng"]
        arr5.append("chw")
        println("arr5 is \(arr5)")

//        字典
        let dic11 = ["name":"chw","sex":1,"height":175.0]
        println("This is a dictionary \(dic11)")

//        Swift的=是没有返回值的
        var a1 = 5
        var a2 = 5
        if a1 == a2 {
            println("===")
        } else {
//            println("!==")
        }

//        字符串拼接
        let cheng = "c"
        let hong = "h"
        let wei = "w"
        let chenghongwei = cheng + hong + wei
        println("my name is \(chenghongwei)")

//      取余
        println(8%3) // = 2
        println(8%2.5) // 8 % 2.5 = 8 - 2.5 * 3 = 0.5 小数也是可以取余的

//        swith语句
        var i = 14
        switch i {
        case 0...10:
            println("range is 0-10")
        case 11...20:
            println("range is 11-20")
        case 21..<30:
            println("range is [21-30)")
        default:
            break
        }

        var name = "chw"
        switch name {
        case "cheng":
            println("name is cheng")
        case "hong":
            println("name is hong")
        case "wei":
            println("name is wei")
        default:
            println("someone else")
        break
        }

//        闭包初探
        names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
        func backwards(s1:String,s2:String)->Bool {
            return s1>s2
        }

//        UI控件
        let lab = UILabel(frame: CGRectMake(100, 100, 200, 100))
        lab.text = "Hello Chw"
        lab.backgroundColor = UIColor.greenColor()
        lab.textAlignment = NSTextAlignment.Center
        self.view.addSubview(lab)

        let btn = UIButton(frame: CGRect(origin: CGPointMake(100,250), size: CGSizeMake(100,50)))
        btn.backgroundColor = UIColor.grayColor()
        btn.setTitle("Chw btn", forState: UIControlState.Normal)
        btn.addTarget(self, action: "btnClick:", forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addSubview(btn)

} 

//TODO:---
    func btnClick(sender:UIButton!){
        println("chw 111")
        var alert = UIAlertView()
        alert.title = "CHW"
        alert.delegate = self
        alert.message = " This is a alert !"
        alert.addButtonWithTitle("Cancle")
        alert.addButtonWithTitle("OK")
        alert.show()

    }

//MARK:-
//MARK:--- AlertViewdelegate
    func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int){
        println("buttonIndex:\(buttonIndex)")
        if buttonIndex == 0 {
           println("Cancle Btn !")
        } else if buttonIndex == 1 {
           println("Sure Btn")
        }
    }
//MARK:-
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-12 12:17:21

一些Swift小知识点的整理的相关文章

【体系结构】有关Oracle SCN知识点的整理

[体系结构]有关Oracle SCN知识点的整理 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Oracle中的SCN是什么?(重点) ② 如何查询SCN?(重点) ③ SCN有哪些分类?(重点) ④ SCN和系统恢复的关系?(重点) ④ 实例恢复和介质恢复的区别是什么?RAC中的实例恢复是什么样的?(重点) ⑥ SCN和时间的转换 ⑦ SMON_SCN_TIME

小知识点日志(2014-10-22~2015-4-7)

上一篇 小知识点日志(2013-6-24~2014-10-11) 2014-10-22 17:51:46 1.函数命名:使用 LayerObjectOperation的命名方法,例如SlotFileRead.如果是面向对象的,通常是Layer字段在类名里表示了,而ObjectOperation通常表示成OperationObject,例如" CSlot slot; slot.readFile(); " 2.svn bug 3.mac实用工具:dash alfred 4.xcode Pe

私人定制javascript中对象小知识点(Only For Me)

废话不多讲,先上笑话,然后再,.看懂这个的说明你的节操已经不再了. 晚饭后去理发店理发...割了吧...老板问我怎么剪,我悠悠的来一句往帅了剪...高潮往往令人想不到....旁边一在焗油烫头发的大妈说到 别这样为难老板,人家赚点钱不容易...首先如果你是高手那么请出门右转,如果你是菜鸟那么恭喜你,go on吧 全局对象在javascript程序中任何位置,都可以拈来就用的这种东西,是全局对象的属性.那么属性所在的对象也就是全局对象了.当javascript解释器启动时(或者任何Web浏览器加载新

对日编程的一些小知识点

在GitHub上有个项目,本来是作为自己研究学习.net core的Demo,没想到很多同学在看,还给了很多星,所以觉得应该升成3.0,整理一下,写成博分享给学习.net core的同学们. 项目名称:Asp.NetCoreExperiment 项目地址:https://github.com/axzxs2001/Asp.NetCoreExperiment 今天先分享几个对日编程的小知识点 1.关于BOM(Byte Order Mark)知识点( https://baike.baidu.com/i

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

C++ 小知识点 WINAPI

int WINAPI WINMain 中,WINAPI含义 网友给出回答:在windef.h头文件中有如下定义#define WINAPI      __stdcall#define APIENTRY    WINAPIVC有两种函数调用方式 一种是__stdcall,另一种是__cdecl函数的调用方式有两种一种是PASCAL调用方式,另一种是C调用方式使用PASCAL调用方式,函数在返回到调用者之前将参数从栈中删除使用C调用方式,参数的删除是调用者完成的WinMain函数是由系统调用的,Wi

0607am抽象类&amp;接口&amp;析构方法&amp;tostring&amp;小知识点

/*class ren{ public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里面,代表这分类 }} */ //不能实例化的类:抽象类abstract class Animal //关键字abstract{ public $dong; public $jiao; function chi() { } function shui() { }}class Ren extends Ani

初学MySQL中的一些小知识点

写在前面,小弟初用博客记录学习路上的一点点小知识点,其中可能有个人理解方面的误差,或不明白的地方.希望各位大牛纠正指导,小弟感激不尽!这并不是什么帮助别人解决问题的文章,只是小弟将学习到的内容一一写在博客上,这样方便以后复习,还恳请大家勿喷.. 一.进入MySQL客户端 1.客户端可以通过.../MySQL/bin目录下的sql.exe运行客户端. 1.1:访问方式一: -u root -p /*可以直接在这段代码的后面添加密码,也可以按回车后再输入密码*/ 1.1:访问方式二: --host

私人定制javascript中数组小知识点(Only For Me)

先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好,便是晴天! 媳妇说:老公你太有诗意了. 老公:滚犊子,安不好我整死你! 数组的概念 javascript数组是值得有序集合,不过它实属一个javascript对象的特殊形式,这是一个很重点的定性. 创建数组 1.var a=new Array();//等同于[] 2.var a=new Array(