枚举
1.IBAction和IBOutlet共同的和区别2.常见错误3.UIButton4.UILabel5.父子控件6.UIView常见属性7.渐变动画8.懒加载9.通过Xib自定义控件10.自定义控件11.@property的使用策略12.instancetype和id的区别13.帧动画14.UIImageView15.MemoryLayout16.偏swift框架17.git的使用18.寄存器19.swift基础
20.枚举
21.UITableView22.UITableViewCell23.UITableView24.UIScrollView遇见的问题25.NSTimer26.常见控件的事件监听27.UIScrollView28.图片拉伸29.KVO30.KVC31.Xcode15.0.1 有相同的.h文件,Xcode的调用顺序枚举
- 一般情况
enum Sorce {
case y
case x
}
let direction: Sorce = .x
结果:
x
- rawValue
enum Direction: String {
case north = "N"
case south = "S"
case east = "E"
case west = "W"
}
print(Direction.north, Direction.north.rawValue)
结果:
north N
更加复杂一点
enum Direction: String {
case north
case sourth = "S"
case east = "E"
case west = "W"
}
let Move = Direction.north
switch Move {
case .north: print("north")
case .sourth: print("sourth")
case .east: print("east")
case .west: print("west")
}
print(Direction.north, Direction.north.rawValue, Direction.sourth, Direction.sourth.rawValue)
总结
enum Direction: String {
case north, south, east, west
}
- 关联值
enum Sorce {
case points(Int)
case grade(Character)
}
let sorceA: Sorce = .points(15)
let sorceB: Sorce = .grade("A")
print(sorceA, sorceB)
switch sorceA {
case let .points(point): print(point)
case let .grade(char): print(char)
}
结果:
points(15) grade("A")
15
递归枚举
indirect enum ArithExpr {
case number(Int)
case sum(ArithExpr, ArithExpr)
case difference(ArithExpr, ArithExpr)
}
func sumVale(_ expression: ArithExpr) -> Int {
switch expression {
case let .number(value):
return value
case let .sum(value1, value2):
return sumVale(value2) + sumVale(value1)
case let .difference(left, right):
return sumVale(left) - sumVale(right)
}
}
let value1 = ArithExpr.number(10)
let value2 = ArithExpr.number(20)
let A = sumVale(ArithExpr.sum(value1, value2))
let B = sumVale(ArithExpr.difference(value2, value1))
print(A, B, sumVale(value1), sumVale(value2), value1, value2)
结果
30 10 10 20 number(10) number(20)
@inline
//永远不会被内联 (即使开启了编译器优化)
@inline(never) fun test() {
}
//开启编译器优化后, 即使代码很长, 也会被内联 (递归, 动态派发除外)
@inline(_always) func test() {
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战