iOS-swift-基础篇1

一.swift是啥?答:百度。

二.swift基础知识。

1.输出函数:print

print("Hello, world!")

2.简单数据类型

变量声明:var

  常量声明:let

    var myVariable = 42
    myVariable = 50
    let myConstant = 42

如果没有变量或者常量的类型(如下1、2行),定义的变量或者常量的类型是在第一次赋值时自动判定的。

如果声明了类型(如下第3行),则必须赋值指定类型。

    let implicitInteger = 70
    let implicitDouble = 70.0
    let explicitDouble: Double = 70

变量转换:

1     let label = "The width is "
2     let width = 94
3     let widthLabel = label + String(width)

字符串拼接

字符串插入变量方法:\()

将变量放入括号里面就ok了

1     let apples = 3
2     let oranges = 5
3     let appleSummary = "I have \(apples) apples."
4     let fruitSummary = "I have \(apples + oranges) pieces of fruit."

数组和字典:

数组和字典对象都放在 [] 里面,用 ","分隔,并且最后一个对象后面可以加 逗号。

创建有对象的字典和数组:

1     var shoppingList = ["catfish", "water", "tulips", "blue paint"]
2     shoppingList[1] = "bottle of water"
3
4     var occupations = [
5         "Malcolm": "Captain",
6         "Kaylee": "Mechanic",
7     ]
8     occupations["Jayne"] = "Public Relations"

创建空数组和字典:

1     let emptyArray = [String]()
2     let emptyDictionary = [String: Float]()

或者

1     shoppingList = []
2     occupations = [:]

3.控制流(Control Flow)

条件控制:if 和 switch

循环控制:for-in,for,while 和 repeat-while

用于条件判断的语句的圆括号是可选的。

for-in:

 1     let individualScores = [75, 43, 103, 87, 12]
 2     var teamScore = 0
 3     for score in individualScores {
 4         if score > 50 {
 5             teamScore += 3
 6         } else {
 7             teamScore += 1
 8         }
 9     }
10     print(teamScore)

if:

1     var optionalString: String? = "Hello"
2     print(optionalString == nil)
3
4     var optionalName: String? = "John Appleseed"
5     var greeting = "Hello!"
6     if let name = optionalName {
7         greeting = "Hello, \(name)"
8     }

类型后面加“?”表示 可选类型(optional value)。

if 和 let 一起使用判断值是否为nil,如果是nil,那么就会跳过这个模块。
使用 if let 可以操作可选类型。

?,??:

?? 后面是 默认值

1     let nickName: String? = nil
2     let fullName: String = "John Appleseed"
3     let informalGreeting = "Hi \(nickName ?? fullName)"

使用  ?? 也可以操作可选类型。如果 可选类型值为nil 那么就使用 ?? 后面的默认值。

switch:

switch 支持多种类型的数据类型和比较运算。 不仅仅数值类型和相等判断。

 1     let vegetable = "red pepper"
 2     switch vegetable {
 3     case "celery":
 4         print("Add some raisins and make ants on a log.")
 5     case "cucumber", "watercress":
 6         print("That would make a good tea sandwich.")
 7     case let x where x.hasSuffix("pepper"):
 8         print("Is it a spicy \(x)?")
 9     default:
10         print("Everything tastes good in soup.")
11     }

程序执行完 switch 的某个 case 后,会跳出switch,无需添加 break。

for-in:

for-in 遍历字典:

 1     let interestingNumbers = [
 2         "Prime": [2, 3, 5, 7, 11, 13],
 3         "Fibonacci": [1, 1, 2, 3, 5, 8],
 4         "Square": [1, 4, 9, 16, 25],
 5     ]
 6     var largest = 0
 7     for (kind, numbers) in interestingNumbers {
 8         for number in numbers {
 9             if number > largest {
10                 largest = number
11             }
12         }
13     }
14     print(largest)

while 和 repeat-while:

 1     var n = 2
 2     while n < 100 {
 3         n *= 2
 4     }
 5     print(n)
 6
 7     var m = 2
 8     repeat {
 9         m *= 2
10     } while m < 100
11     print(m)

..< 和 ...

循环起止边界判断,使用 ..< 是包含最小值而不包含最大值。使用 ... 是最小值和最大值都包含。

1     var total = 0
2     for i in 0..<4 {
3         total += i
4     }
5     print(total)

学习资源来自swift官方文档: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1

时间: 2024-10-16 04:49:35

iOS-swift-基础篇1的相关文章

iOS系列 基础篇 03 探究应用生命周期

iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本篇主要探讨的是iOS应用中各种状态的跃迁过程,建议大家通过修改AppDelegate.swift,在每个过程中添加日志输出代码,从而观察其变化. 作为应用程序的委托对象,AppDelegate类在应用程序生命周期的不同阶段会回调不同的方法. 首先,咱们先来了解一下iOS应用的不同状态和他们之间的关系

iOS系列 基础篇 08 文本与键盘

iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 1. 扯扯犊子 与Label一样,TextField和TextView也是文本类控件,是可以编辑文本内容的. 在控件内容编辑方面,三者都可以通过代码.双击该控件和属性检查器中的Text属性来实现,但是TextField和TextView比Label多了一个键盘的使用. 另外,TextField和T

iOS系列 基础篇 09 开关、滑块和分段控件

iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块控件(Slider)和分段控件(Segmented Control)都是UIControl的子类,本篇我们将通过一个案例和大家一起学习这三个控件的使用. 如下图所示,本案例包括两个开关控件Switch.一个分段控件(Segmented Control).两个标签(Label)和一个滑块控件(Slid

iOS系列 基础篇 06 标签和按钮 (Label &amp; Button)

iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single View Application模板创建一个名为“LabelAndButtonSimple”的工程 (PS:具体创建过程和各设置项介绍等可参见前面的文章,这里就截图简单带过了:) (1) 打开Xcode,选择Create a new Xcode Project: (2) 选择Single View Applic

iOS系列 基础篇 07 Action动作和输出口

iOS系列 基础篇 07 Action动作和输出口 目录:  1. 前言及案例说明 2. 什么是动作? 3. 什么是输出口? 4. 实战 5. 结尾 1. 前言及案例说明 上篇内容我们学习了标签和按钮,下面呢 我们通过一个具备用户交互功能的工程案例进一步练习这两个控件的使用,以及动作和输出口的控制. 此案例基于上篇内容的界面设计,功能的概念流程如图: 此案例的动作和输出口机制如图: 2. 什么是动作? 动作是为了响应一个控件的事件而定义的方法,类似于.NET中WinForm为控件某一事件添加的动

iOS开发基础篇-手写控件

一.手写控件的步骤 1)使用相应的控件类创建控件对象: 2)设置该控件的各种属性: 3)添加空间到视图中: 4)如果是 UIButton 等控件,还需考虑控件的单击事件等: 二.添加 UIButton 单击事件  [topbtn addTarget:self action:@selector(move:) forControlEvents:UIControlEventTouchUpInside]; 1) addTarget:forControlEvents: 方法定义在 UIControl 类中

IOS开发基础篇--手写控件,frame,center和bounds属性

iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:se

IOS开发基础篇 -- 分类、类别

Category (分类.类别) 分类只能增加方法不能增加成员变量,可以声明属性,实际上会生成属性的set和get方法,但不会生成带下划线的成员变量,也不能添加成员变量(可以在不修改原来类模型的基础上拓充方法) inheritance >继承可以扩充成员变量和方法 但会产生新的类 extensions >类扩展(没有名字) 可以增加私有的成员变量和方法  一般写在要扩展类的.m文件内

IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性

http://blog.csdn.net/yixiangboy/article/details/50662704 一.案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: . 在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候,我采取的方法就是实时的 移除旧的CAShapeLayer 然后重绘这个圆形的CAShapeLayer.显然这种方式的效率是不高的.后来在一次看别人Demo的时候,发现别人使用了CAShapeLayer的strokeSta

IOS开发基础篇 --添加的约束中所有的枚举值

/** NSLayoutConstraint类中的枚举值 *  代码添加一条约束      *      * @param Item:view1 :要约束的控件      * @param attribute:attr1 :约束的类型(做怎样的约束)      * @param relatedBy:relation :与参照控件之间的关系      * @param toItem:view2 :参照的控件      * @param attribute:attr2 :约束的类型(做怎样的约束)