Swift 学习笔记 (初始化)】的更多相关文章

初始化是为类 结构体 或者枚举准备实例的过程.这个过程需要给实例里的每一个存储属性设置一个初始值并且在新实例可以使用之前执行任何其它所必需的配置或初始化. 初始化器 初始化器在创建特定类型的实例时被调用.在这个简单的形式中,初始化器就像一个没有形式参数的实例方法,使用 init 关键字来写: init() { // perform some initialization here } 代码示例 struct Fahrenheit { var temperature:Double init() {…
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字,回传到父页面. 我是使用protocol去实现的回传.那让我们来创建一个protocol import Foundation protocol ValueBackDelegate { func ValueBack(value: String) } protocol可以理解为interface,ValueBa…
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹果以后大力推广的语言哦! 2.Swift给你带来什么机会? 当初你觉得objc太难,学ios学到一半放弃拉,或者进入it行业大家都搞android,你也搞android去了.现在你终于有机会和搞ios的站在一个语言的起跑线上,兄弟!swift传说很容易学哦,搞android的你想不想增加一下本领?提…
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 自动引用计数 引用计数仅仅应用于类的实例.结构体和枚举类型是值类型,不是引用类型,也不是通过引用的方式存储和传递 当你每次创建一个类的新的实例的时候…
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 扩展(Extensions) 扩展 就是为一个已有的类.结构体.枚举类型或者协议类型添加新功能.这包括在没有权限获取原始源代码的情况下扩展类型的能力…
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 类和结构体 与 Objective-C 语言不同的是,Swift 允许直接设置结构体属性的子属性. 实际上,在 Swift 中,所有的基本类型:整数…
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 print函数 函数原型 print(items, separator: String, terminator: String) 参数: items…
最近计划把Swift语言系统学习一下,然后将MagViewer用这种新语言重构一次,并且优化一下,这里记录一下Swift的学习笔记. Swift和Objective-C相比,在语法和书写形式上做了很多改进,面向开发者的体验更好了.比如: println("Hello, world!") 就可以打印出这个字符串,这条语句就是完整的一句,句末不需要添加分号,也不需要引入额外的头或者库文件比如标准输入输出等.在全局作用域内书写的代码就会作为程序的入口,因此不需要编写main函数了. 简单值…
swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用helloword来说它语法精简没错,但是这个简单的例子不能证明它功能简单! 我相信swift语言非常强大,拥有很多OC以前没有的超强大面向对象特性!想用好并不容易! 下面是:比较系统的整理了自己学习swift 的笔记,一方面用作记录,便于以后查阅,也分享给需要的朋友! 我是任海瑞,共勉!我与你还有很…
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 函数 func sayHello(personName: String, alreadyGreeted: Bool) -> String { if…
初始化 初始化是一个在类.结构体或枚举的实例对象创建之前,对它进行预处理的过程,包括给那个对象的每一个存储式属性设定初始值,以及进行一些其他的准备操作. 通过定义初始化器(initializer)来实现初始化过程,它就像一种在创建该类型实例对象时会自动调用的方法.不同于OC的初始化,Swift中并不需要返回值. 类类型的实例对象还可以定义析构器(deinitializer),它在实例对象被销毁之前执行一些自定义的清理工作. 类和结构体必须在初始化时给所有的存储式属性设定合适的初始化值,在实例对象…
1.分类 方法分为实例方法和类型方法 实例方法(Instance Methods):与java中的类似,略 类型方法(Type Methods):与java.oc中的类方法类似.声明类的类型方法,在方法的func关键字之前加上关键字class:声明结构体和枚举的类型方法,在方法的func关键字之前加上关键字static. 方法的参数名参见学习笔记的函数章节 2.在实例方法中修改值类型和self 结构体和枚举是值类型.一般情况下,值类型的属性不能在它的实例方法中被修改. 但是,如果你确实需要在某个…
原创:转载请注明出处 110.自动引用计数实践 下面的例子展示了自动引用计数的工作机制.例子以一个简单的Person类开始,并定义了一个叫name的常量属性: class Person {     let name: String     init(name: String) {         self.name = name         print("\(name) is being initialized")     }     deinit {         print(…
目录: 初始化 常用方法或属性 字符串索引 初始化 创建一个空字符串作为初始值: var emptyString = "" // 空字符串字面量 var anotherEmptyString = String() // 初始化方法,两个字符串均为空并等价. 常用方法或属性 var empty = emptyString.isEmpty // 判断字符串是否为空 var welcome = "string1" + string2 // 使用 + 或 += 拼接字符串…
Optional Chaining 自判断链接(Optional Chaining)是一种可以请求和调用属性.方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(  nil ).如果自判断的目标有值,那么调用就会成功:相反,如果选择的目标为空(  nil ),则这种调用将返回空(  nil ).多次请求或调用可以被链接在一起形成一个链,如果任何一个节点为空(  nil )将导致整个链失效. 笔记:   Swift 的自判断链和Objective-C中的消息为空有些相像,但是  S…
在学习Java过程中,字符串碰到过String和StringBuffer,当中前者是不可变的,不能对字符串进行改动:后者是可变的,能够不断改动. 来到Swift中,对字符串的定义变的更加简单. (1)概述 Swift中,用let 声明的是字符串常量,不能进行改动. 用var声明的是字符串变量,能够改动.通过代码来演示. let str1 = "Hello1" var str2 = "Hello2" str1 = "world1"//报错:cann…
使用 func来声明一个函数.通过在名字之后在圆括号内添加一系列参数来调用这个方法.使用 ->来分隔形式参数名字类型和函数返回的类型 func greet(person: String, day: String) -> String { return "Hello \(person), today is \(day)." } greet(person: "Bob", day: "Tuesday") 默认情况下,函数使用他们的形式参数名…
最近在学习IOS,我一直使用的是C#来开发,对Java .C.C++也有一定的了解.最近入手了一台Air,想试着学习IOS开发. 如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下看了,真的! 一开始我的目标很明确,那就是学习OC,应为此语言经过多年的广泛应用,网上源代码很多,而且遇到的问题在百度和Google里也能很容易的找到资料,所以我一开始是奔着OC去的,但是几天的视频看下来,发现这OC语法只能用奇葩二字来形容,也许是我用惯了C#和Java的语法,也许是我个人的问题,反…
目录: 数组:Array 集合:Set 字典:Dictionary Swift提供Array(有序集合数据).Set(无序无重复集合)和Dictionary(无序键值对集合)三种基本集合类型来存储明确数据类型的集合数据. 使用var将集合声明为变量,可以在创建之后添加.移除.修改集合内数据项.如果使用let将集合声明为常量,则它的大小和内容就都不可改变. 数组:Array 初始化和赋值: var someInts = [Int]() // 创建指定数据类型的空数组 someInts = [] /…
Swift使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存.通常情况下,Swift 内存管理机制会一直起作用,你无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自动释放其占用的内存.然而,在少数情况下,ARC 为了能帮助你管理内存,需要更多的关于你的代码之间关系的信息. 参考练习代码: import Foundation // Swift使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存. // 引用计数仅仅应用于类的实例.结构体和枚举类型是值类型,不是引用类型…
//类和结构体 import UIKit //类和结构体 /* 1.枚举enum.结构体struct和String.Array.Dictionary类型,都属于值传递类型,被赋值给新的常量或变量时传递的是值的拷贝,若声明为常量实例,则不能修改它的属性的值,即使属性为变量 2.类class是引用类型,被赋值时传递的是实例的引用 一.类和结构体对比 Swift 中类和结构体有很多共同点.共同处在于: 定义属性用于存储值 定义方法用于提供功能 定义附属脚本用于访问值 定义构造器用于生成初始化值 通过扩…
//构造过程 import UIKit /* 构造过程(Initialization): 1.构造过程是使用类.结构体或枚举类型的一个实例的准备过程.在新实例可用前必须执行这个过程,具体操作包括设置实例中每个存储型属性的初始值和执行其他必须的设置或初始化工作.通过定义构造器( Initializers )来实现构造过程,这些构造器可以看做是用来创建特定类型新实例的特殊方法 2.类和结构体在创建实例时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态.当你为存储型属性设置…
//自动引用计数 import UIKit /*自动引用计数(Automatic Reference Counting) 防止循环强引用 Swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存.通常情况下,Swift 内存管理机制会一直起作用,你无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自动释放其占用的内存.然而,在少数情况下,ARC 为了能帮助你管理内存,需要更多的关于你的代码之间关系的信息,引用计数仅仅应用于类的实例.结构体和枚举类型是值类型,不是引用类型…
swift 面向过程 数据结构 3.1 常量和变量 定义常量和变量 let a = 1 var b = 2 显式定义和隐式定义 无需指定强类型,编译器会自动根据初始值推断出其类型.与c#相似.如果在定义时不初始化,则必须显式定义 var username:String 可选变量 类似C#的可空类型. var str1:String?//默认为nil 处理变量的可选值时,你可以在操作(比如方法.属性和子脚本)之前加?.如果?之前的值是nil,?后面的东西都会被忽略,并且整个表达式返回nil.否则,…
自动引用计数(Automatic Reference Counting) 和OC一样,Swift用自动引用计数机制来跟踪和管理你应用程序的内存,大多数情况下,你不需要考虑自己管理内存,Swift会自动帮你管理.当实例对象不再需要时,Swift会自动释放它使用的内存.但是,在有些情况下,ARC需要知道更多你代码之间的关系来帮助你管理内存,本章会描述那些情况并展示如何启用ARC来管理你应用程序的内存. 注意:引用计数只作用于类实例,结构体和枚举是值类型而非引用类型,并且不是以引用形式被存储和传递的.…
类与结构体 Swift中,并不要求把自定义类或结构的接口和实现写在不同的文件中.你在一个文件中定义类或结构体,那么这个类或结构体的外部接口就自动可以在其他代码中使用了. 类和结构有很多相似和区别,相同点有: >可以定义属性来存储值 >可以定义方法提供各种功能 >可以定义下标使得可以通过下标语法获取值 >可以定义初始化方法来设定初始状态 >可以被扩展以提供默认实现之外的功能 >遵守协议以提供标准化的功能 此外,类具备一些结构体不具备的特性,如: >继承允许一个类继承…
枚举 一个枚举为一组相关联的值定义一个通用类型,并且让你可以在代码中类型安全地操作这些值. C中的枚举将关联的名字指派给一系列整型值.Swift中的枚举类型更为活泼,并不需要为每个成员指定值,如果指定值(raw value),这个值可以是String或者Character.整型或者浮点型. 此外,每个枚举成员可以指定不同数量的任意类型的关联值存储起来.这有点像其他语言里的联合.你可以定义一个普通的一系列关联值的集合作为一个枚举的一部分,每个枚举都可以有一个适当类型的不同集合. 在Swift中,枚…
集合类型(Collection Type) Swift提供三种主要的集合类型:数组(array).集合(set).字典(dictionary).数组是有序的值序列,集合是无序的值序列,字典是无序的键值对序列.这三个类型都要求显示指定存储值的类型.因此不能把不同类型的值增加到它们中. 如果创建的集合类型并赋值给一个变量而非常量,那么它就是可以改变的.如果是赋值给一个常量,那么它就是不可改变的.这和OC中是有区别的,OC是在创建的时候就需要用不同的类来创建实例来确定是否可变.尽管如此,在确定该变量应…
基础运算符 Swift的大部分运算符和C及OC相同,也分一元二元多元的,这里只记录一些Swift特有的性质或写法. 赋值运算符( = ) 在等号右边是一个有多个值的元组时,它的成员值可以分解并同时分别赋值给常量或者变量: let (x, y) = (, ) // x is equal to 1, and y is equal to 2 和C.OC不同的是,赋值运算符本身并不返回值,因此如下写法是错误的: if x = y { // this is not valid, because x = y…
前面三篇笔记通过一些示例展示了Swift的一些特性,粗略地介绍了它的语法和特色,从这一篇笔记开始,将正式系统地介绍Swift的语法和特性了. Swift是一门为iOS和OSX开发准备的全新语言,但是它和C以及Objective-C有很多相似的地方. Swift给所有的C语言基本类型和Objective-C类型提供了自己的包装类型,比如用Int标识integers,用Double和Float标识浮点值,String标识文本数据,Swift也提供两个主要的集合类型提供了自己的版本:Array和Dic…