Swift_属性


点击查看源码

class DataImporter {

    var fileName = "data.txt"

    init() {
print("初始化")
}
} private class Users { //有默认值的属性
var id = 0
//只指定类型的属性 有可能存储nil
var name:String?
//懒加载 只是使用的时候才会初始化
lazy var importer = DataImporter()
//get set
var qqTemp:String = ""
var qq:String {
//如果使用get和set则不能使用当前属性名赋值,以免死循环
//获得
get {
print("获得")
return self.qqTemp
}
//设置
set {
print("传入值:\(newValue)")
self.qqTemp = newValue
}
}
//只读 read-only
var height: Int {
return 180
}
//属性观察
var address:String = "" {
willSet {
print("新地址:\(newValue)")
}
didSet {
print("旧地址:\(oldValue)")
}
} //静态变量
static var storedTypeProperty = "Some value."
} //属性
class Properties: NSObject { func test() {
self.testProperties()
} func testProperties() {
let user = Users() //有初始值
print("\(user.id)") //无初始值
print("\(user.name)") //懒加载 只有使用的时候才会加载
print("\(user.importer.fileName)") //先输出"初始化" 后输出"data.txt" //get和set
user.qq = "1045214799"
print("\(user.qq)") //只读
// user.height = 150 //报错
print("\(user.height)") //属性观察 willSet将设置 didSet已设置
user.address = "北京" //新地址:北京 旧地址:
user.address = "天安门" //新地址:天安门 旧地址:北京 //静态变量
Users.storedTypeProperty = "static"
print("\(Users.storedTypeProperty)")
}
/* print 0
nil
初始化
data.txt
传入值:1045214799
获得
1045214799
180
新地址:北京
旧地址:
新地址:天安门
旧地址:北京
static */
}

Swift_属性的更多相关文章

  1. swift_属性观察者

    //: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground& ...

  2. jqu

    1 /*2 * 说明:3 * 本源代码的中文注释乃Auscarlin呕心沥血所作.旨在促进jQuery的传播以及向广大jQuery爱好者提供一个进阶4 *的途径,以让各位更加深入地了解jQuery,学 ...

  3. Swift_字符串详解(String)

    Swift_字符串详解(String) 类型别名 //类型别名 fileprivate func testTypeAliases() { let index = String.Index.self p ...

  4. Swift_可选链

    Swift_可选链 点击查看源码 //可选链 func test() { class Person { //可选属性可能为nil或Residence类 var residence: Residence ...

  5. Swift_初始化

    #Swift_初始化 点击查看源码 初始化结构体 //初始化结构体 func testInitStruct() { //结构体 类中默认方法 struct Size { //宽 var width = ...

  6. Swift_继承

    Swift_继承 点击查看源码 func testInheritance() { //基类 class Base { var count = 0.0 var description: String { ...

  7. Swift_方法

    Swift_方法 点击查看源码 ///方法 class Methods: NSObject { func test() { // self.testInstanceMethods() //实例方法 s ...

  8. Swift_类和结构体

    Swift_类和结构体 点击查看源码 struct Resolution { var width = 0 var height = 0 } class VideoMode { var resoluti ...

  9. Swift_枚举

    Swift_枚举 点击查看源码 空枚举 //空枚举 enum SomeEnumeration { // enumeration definition goes here } 枚举基本类型 //枚举基本 ...

随机推荐

  1. Recursive sum in parent-child hierarchy T-SQL

    ---树形(父子关系类)分级类统计(父子统计) --涂聚文 2014-08-14 drop table BookKindList create table BookKindList ( BookKin ...

  2. 合并excel的多个sheet

    '合并excel的多个sheetSub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.Count If S ...

  3. web前端开发需要具备的技能

    web前端开发需要具备以下7种技能: 1.页面标记(HTML) HTML页面固定,标签不多,相对来说学起来比较容易.编写HTML代码需遵循HTML代码规范(http://www.cnblogs.com ...

  4. Visual Studio Code使用Open In Browser打开的是记事本

    今天在家里学习前端开发,发现Visual Studio Code使用Open In Browser插件快速打开浏览器有问题,打开的是操作系统的记事本. 后来发现电脑的html文件默打开方式被改成了记事 ...

  5. JDBC mysql驱动

    在用JDBC连接MySQL数据库时,需要使用驱动 mysql-connector-java-5.1.41-bin.jar 在本地java应用程序中,只需将jar包导入到项目library中即可, 而在 ...

  6. react-native-mapbox-gl

    mapbox是基于谷歌地图集成的地图插件,可以在很多平台使用,具体可以看mapbox官网.这里具体讲解“react-native-mapbox-gl”插件,是mapbox结合react native封 ...

  7. named 快速部署及主机记录普及

    实验环境centos7.2,仅供参考 yum -y install epel-release    --安装最新yum配置源 cd /etc/yum.repos.d/ # wget http://re ...

  8. 【Leetcode】【Medium】Two Sum

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  9. JS 获取指定日期的前几天,后几天

    function getNextDate(date,day) { var dd = new Date(date); dd.setDate(dd.getDate() + day); var y = dd ...

  10. ptyhon class定制方法

      __iter__ 如果一个类想被用于for ... in循环.须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调用该迭代对象的__next__() ...