首页 > 其他分享 >iOS开发Swift-8-类的继承,方法重写,构造器,枚举类型,可选类型,强制解包,可选绑定,隐式可选类型

iOS开发Swift-8-类的继承,方法重写,构造器,枚举类型,可选类型,强制解包,可选绑定,隐式可选类型

时间:2023-09-01 21:01:33浏览次数:45  
标签:case name color iOS 解包 var seats 类型 String

1.类的继承

class Animal {
    func breathe(){
        //...
    }
}

class Cat: Animal{
    var hasHair = true
}

let cat = Cat()
cat.breathe()
cat.hasHai

class SmallCat: Cat{
    func eat(){
        //...
    }
}
let smallCat = SmallCat()
smallCat.breathe()
smallCat.hasHair
smallCat.eat()

 2.方法的重写

class Animal {
    func breathe(){
        //breathe
    }
}

class Fish: Animal{
    override func breathe() {
        super.breathe()  //调用父类的breathe方法
        //override breathe
    }
}

3.构造器:创建对象;给对象进行初始化

class Car{
    var color: String
    var seats: Int
    init(color: String, seats: Int){
        self.color = color
        self.seats = seats
    }
}
let car = Car(color: "break", seats: 5)
//有初始值/默认值
class Car2{
    var color = "red"
    var seats = 4
    init(color: String, seats: Int){
        self.color = color
        self.seats = seats
    }
}
let car2 = Car2(color: "break", seats: 5)

 4.枚举类型

enum Color {
    case red
    case green
    case blue
}
let colorType = Color.green
let colorType2: Color = .red   //简写

5.枚举的原始值

enum ColorType2: String{
    case red = "veryRed"
    case green = "veryGreen"
    case blue = "veryBlue"
}
ColorType2(rawValue: "veryRed")

enum ColorType3: Int{
    case a = 0
    case b
    case c
}
//b,c原始值自动递增1
ColorType3.c.rawValue

6.枚举的简写

//简写
enum ColorType4{
    case red, green, blue
}
enum ColorType5: Int{
    case a = 1, b, c
}   //如果Int类型的枚举全部没有赋初始值,则默认a为0

 7.可选类型

var name: Optional<String> = Optional("Lili")
//简写
var name: String? = Optional("Lili")
//简简写
var name: String? = "Lili"

 8.强制解包

//"Lili"
var name: String? = "Lili"
print(name)    //Optional("Lili")
print(name!)   //"Lili"
//nil
var name: String? = nil
print(name)    //nil
print(name!)   //系统崩溃,报错Unexpectedly found nil while unwrapping an Optional value(展开可选值时意外发现nil)
//所以需要对可选类型进行判断非空后再进行强制解包。

9.可选绑定

//iflet.  此处的name为nil时跳过这三行代码直接执行下面的。如果name不是nil则将name的值赋给unKnowName,然后可以使用unKnowName。
if let unKnowName = name{
    print(unKnowNmae)
}
//guard:门卫。对可选类型进行拦截。如果name为nil,就进入到else中,再return。如果有值就赋给unKnowName,在else外进行使用。
guard let unKnowName = name else {
    return 值
}
//如果遇到当name为空时就需要直接跳出方法体的情况,用guard比较好。可以直接return出来,并返回需要的东西。

 10.隐式可选类型

//隐式可选类型:可以确定在第一次使用他的时候他肯定有值。所以直接定义的时候就加上感叹号,系统会对他进行自动解包。
@IBOutlet weak var questionLabel: UILabel!
questionLabel.text = queastions[0].text

 11.可选类型自动赋值

//只有可选类型是一个变量,且没有给他赋初始值的时候,系统才会自动给他赋初始值nil。当非可选类型或者常量没有赋初始值,系统不会自动赋初始值。
var name: String?    //name = nil
let name: String?     //可选类型常量没有赋初始值,系统会报错。

 

标签:case,name,color,iOS,解包,var,seats,类型,String
From: https://www.cnblogs.com/lysboke/p/17672703.html

相关文章

  • JavaScript—简单类型与复杂类型
    简单数据类型的内存分配简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。(简单)值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型:string,number,boolean,undefined,null。简单数据类型存放在栈里面查看代码vartimer=null;......
  • 无涯教程-Flutter - 编写IOS代码
    访问iOS特定代码与Android平台上的代码相似,不同之处在于它使用iOS特定语言-Objective-C或Swift和iOSSDK。下表显示了如何在Android和iOS平台上接收Dart值。dartandroidiosnullnull无(嵌套时为NSNull)booljava.lang.BooleanNSNumbernumberWithBool:intjava.lang.Int......
  • 华为交换机接口类型汇总
    接入链路和干道链路如何处理标签!   华为设备默认所有接口的缺省标签为1   只要接口配置有缺省标签,就会对标签做处理交换机链路分为干道链路和接入链路.    接入链路:一条链路一端为二层接口,另外一端为非二层接口.    干道链路:一条链路的两端均为二层接口. ......
  • 没有苹果开发者账号能否创建ios证书-最新
    ​ 摘要:本文介绍了在没有Mac电脑的情况下,使用appuploader工具生成iOS证书和描述文件的方法。随着大前端和H5框架的热门话题,越来越多的人希望将H5应用打包成iOS应用。苹果官方提供的证书申请方法需要Mac电脑,因此本文介绍了使用appuploader工具来生成证书的方便方法。   ......
  • 为什么要对数值类型的特征做归一化
    对数值类型的特征进行归一化是为了确保不同特征之间的数值范围一致,从而有助于机器学习模型更好地理解和处理数据。以下是一些常见的原因和好处:梯度下降:在许多机器学习算法中,如线性回归、支持向量机、神经网络等,都使用梯度下降来最小化损失函数。如果不对特征进行归一化,那些具有......
  • Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect
    上传IPA到[iTunesConnect](https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/96.0.9.3.3.2.1.1.3.1.1)上一篇我介绍了[如何在iTunesConnect里准备应用](http://www.adobe.com/cn/devnet/flash/articles/ios_tutorial_4_itunes.html)。最后在这篇文章里我会简单......
  • IOS开发之免费证书+不越狱真机调试
    苹果发布Xcode7之后,可以打开正常的AppleID或实机上载,而不是$99或$299,只要你可以在AppStore下载应用程序的AppleID。关于Mac系统和Xcode的安装,如果不请参见原文描述,这里只介绍使用Xcode7和普通AppID创建免费证书、个人资料。文中测试环境是OSX10.10.5+XCode7正式版本。因此,一......
  • 2022年iOS上架及证书最新申请流程
    最近的15年,手机行业无论怎么变,ios系统依然还是占据着行业的榜首位置,而打包一个苹果的app,门槛则比较高。主要的原因在于苹果app的开发,打包时需要p12格式的证书文件和描述文件profile文件(在hbuilder和apicloud这些h5打包平台,ios证书又叫私钥证书。),而这些文件的创建则又需要苹果mac电......
  • App Store上架iOS App的详细流程
    最近负责将公司某个项目的iOS应用上架到AppStore,在上架的过程中,需要做的事情很多,但很多都不涉及到太多的技术问题,但是流程很多,而且对应用有很多要求,在上架的过程中也遇到一些问题,后也顺利解决问题,成功上架了。我觉得有必要记录一下过程及遇到的问题,希望对有需要上架的iOS开发者们......
  • iOS证书(.p12)和描述文件(.mobileprovision)申请
    5+App开发Apple证书iOS证书iOS有两种证书和描述文件:证书类型使用场景开发(Development)证书和描述文件用于开发测试,在HBuilder中打包后可在真机环境通过Safari调试发布(Distribution)证书和描述文件用于提交Appstore,在HBuilder中打包后可使用ApplicationLoader提交到Appstore审......