swift开发心得

20170620
1、类型转换,即强制转换类型
格式为:类型(变量);如:

var age:Int = 10
let money:Double = 32.33
age = Int(money)

2、nil在swift中与OC中的区别
Swift 的 nil 和 Objective-C 中的 nil 并不一样。
在 Objective-C 中,nil 是一个指向不存在对象的指针。
在 Swift 中,nil 不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为 nil,不只是对象类型。

3、optionals可选类型
使用可选类型(optionals)来处理值可能缺失的情况。可选类型表示:有值,或没有值nil。
Swift 的可选类型可以让你暗示任意类型的值缺失,并不需要一个特殊值。
C 和 Objective-C 中并没有可选类型这个概念。最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回nil,nil表示“缺少一个合法的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如NSNotFound)来暗示值缺失。这种方法假设方法的调用者知道并记得对特殊值进行判断。

4、字符的定义使用双引号,而不是单引号
5、字符串的索引不能是整数

20170518
1、扩展Extension
新建文件-iOS-Source-Swift File-添加关键字extension-添加操作类-添加方法。示例:

import UIKit
extension UIView
{
    // MARK : 坐标尺寸    
    var origin:CGPoint {
        get {
            return self.frame.origin
        }
        set(newValue) {
            var rect = self.frame
            rect.origin = newValue
            self.frame = rect
        }
    }
    // 缩放
    func viewScaleWithSize(size:CGFloat) -> Void
    {
        self.transform = CGAffineTransformScale(self.transform, size, size);
    }        
}

20170517
1、代码方法设置

class ViewController: UIViewController, UITextFieldDelegate { }

20170515
1、类方法,即+方法的定义时,添加关键字class(class func 方法名(参数) -> 返回类型{…})
2、方法或功能分类隔开时,使用"// MARK: - xxx"(OC中使用:#pragma mark - xxxx)
3、宏定义(区分于OC中的定义),swift中因为命名空间的缘故,即整个项目共享命名空间,是不能使用宏定义语法的,类似于OC中的宏定义,可以添加一个空的Const.swift文件,在其中,我们将原本oc中不需要接受参数的宏,定义成let常量,或定义成枚举值,将需要接受参数的宏定义成函数即可,然后再直接使用Const.swift中定义的这些公共的常量和函数。如:
OC中(Const.h)
#define kScreenWidth [UIScreen mainScreen].applicationFrame.size.width
#define kScreenHeight [UIScreen mainScreen].applicationFrame.size.height
swift中(Const.swift)
import Foundation
import UIKit
let kScreenWitdh = UIScreen.mainScreen().bounds.width
let kScreenHeight = UIScreen.mainScreen().bounds.height
// 枚举(注意字符串String,或整型Int时的取值分别是:rawValue,hashValue)
使用:TimeFormat.format_default.rawValue
enum TimeFormat:String{
case format_default = “yyyy-MM-dd HH:mm:ss”

}
使用:Week.Monday.hashValue
enum Week:Int{
case Monday = 1

}

20160228
1、swift项目文件没有.h、.m文件之分,只有一个swift文件,如 ViewController.swift
2、siwft语句结尾无分号";",如 self.title = “swift”,但如果是多条语句写在同一行时,需要使用分号";“进行区分。
3、swfit函数、属性等的调用均通过点语法”.",如 self.title = “swift”
4、字符串的定义及使用不带标识符"@"
5、变量定义:let定义常量,初始化时定义,且不能再次赋值;var定义变量,可以多次赋值;
6、变量输出有两种格式
(1)直接使用变量名称,如:let lastName = “shaoyu”;print(lastName)
(2)在字符串中结合" (变量名称) ",以参数的形式,如:let lastName = “shaoyu”;print(“你的名称是:(lastName)”)

你可能感兴趣的:(swift学习)