总结:整个Closure的作用在于简化语言表述形式. 一.闭包的简化 Closure expression syntax has the following general form: { () -> in } reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in return s1 > s2 }) Because the sorting closure is passed as an argumen…
Overriding A subclass can provide its own custom implementation of an instance method, type method, instance property, type property, or subscript that it would otherwise inherit from a superclass. This is known as overriding. Overriding by accident…
一.数据类型 1.基础类型的封装 Swift provides its own versions of all fundamental C and Objective-C types, including Int for integers, Doubleand Float for floating-point values 2.新类型 Swift introduces advanced types not found in Objective-C, such as tuples. Tuples…
一.变量定义 1.常量与变量 Use let to make a constant and var to make a variable. 2.类型与推测 However, you don’t always have to write the type explicitly. Providing a value when you create a constant or variable lets the compiler infer its type. 3.类型转换与字符串 Write the…
1.oc比较: -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例 2.is 类型检查 Use the type check operator (is) to check whether an instance is of a certain subclass type. 3. (as? or as!) 类型转化 Use the conditional f…
1.错误类型与枚举的结合 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock } throw VendingMachineError.insufficientFunds(coinsNeeded: 5) 2.异常捕获与栈展开 Error handling in Swift resembles exception handlin…
Swift defines two kinds of initializers for class types to help ensure all stored properties receive an initial value. These are known as designated initializers and convenience initializers. Designated:指定的:特指的 全初始化与部分初始化 Designated Initializers and…
结论:value是拷贝,Reference是引用 Value and Reference Types Types in Swift fall into one of two categories: first, “value types”, where each instance keeps a unique copy of its data, usually defined as a struct, enum, or tuple. The second, “reference types”,…
总结:swift中的枚举可以看作变量可以作为case匹配参数的类 Enumerations 枚举的作用:状态列举与匹配 枚举值与类型 If a value (known as a “raw” value) is provided for each enumeration case, the value can be a string, a character, or a value of any integer or floating-point type. You can define a c…
一.函数类型 Every function in Swift has a type, consisting of the function’s parameter types and return type. Function Types Every function has a specific function type, made up of the parameter types and the return type of the function. For example: func…
定义有什么,及哪些必须实现. A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality. Property Requirements The protocol doesn’t specify whether the property should be a stored property or…
结论:扩展无法修改原来的数据结构. Extensions can add new functionality to a type, but they cannot override existing functionality. If you define an extension to add new functionality to an existing type, the new functionality will be available on all existing instan…
initial value:必须初始化.不影响观察者 Classes and structures must set all of their stored properties to an appropriate initial value by the time an instance of that class or structure is created. Stored properties cannot be left in an indeterminate state. You c…
Lazy Stored Properties A lazy stored property is a property whose initial value is not calculated until the first time it is used. You indicate a lazy stored property by writing the lazy modifier before its declaration. let kScreenWidth = UIScreen.ma…
Classes, structures, and enumerations can define subscripts, which are shortcuts for accessing the member elements of a collection, list, or sequence. 下标的形式和函数相同,并且set和get合一 subscript(row: Int, column: Int) -> Double 比较: In addition to simple propert…
Assigning to self Within a Mutating Method Mutating methods can assign an entirely new instance to the implicit self property. The Point example shown above could have been written in the following way instead: struct Point { var x = 0.0, y = 0.0 mut…
Topics Logical Values struct Bool A value type whose instances are either true or false. Numeric Values struct Int A signed integer value type. struct Double A double-precision, floating-point value type. struct Float A single-precision, floating-poi…
1.Tuples are compared from left to right, one value at a time, until the comparison finds two values that aren’t equal. (1, "zebra") < (2, "apple") You can compare two tuples if they have the same type and the same number of values.…
(via:破船之家,原文:How To Make a Custom Control in Swift) 用户界面控件是所有应用程序重要的组成部分之一.它们以图形组件的方式呈现给用户,用户可以通过它们与应用程序进行交互.苹果提供了一套控件, 例如 UITextField,UIButton,UISwitch.通过工具箱中的这些已有控件,我们可以创建各式各样的用户界面. 然而,有时候你希望界面做得稍微的与众不同,那么此时苹果提供的这些控件就无法满足你的需求. 自定义控件,除了是自己构建二外…
Swift 语言支持C语言全部的控制语句.包含for 和while循环语句,if和switch条件语句,以及break和continue控制语句等. Swift 语言除了支持以上语句,还添加了一个for-in循环语句.来更方面地遍历数组.词典.范围.字符串和其他序列等. 1.for-in循环 for index in 1...5 { println("\(index) times 5 is \(index *5)") } 以上for-in循环用来遍历一个闭合的的范围. 为了语句的简洁…