文章3
标签3
分类1

从零开始学习Swift-> iOS

从零开始学习Swift-> iOS

1 前言

这是一篇学习iOS开发的教程,也是一篇记录学习的博客。

适合初学者观看,所有代码基于Swift 5 与 iOS 12

本文以UIkit作为学习对象,SwiftUI不在范围内

2 Swift

2.1 基本语法

以Hello world为例

import Cocoa
//Swift基本语法
var String = "Hello World"
print(String)

2.1.1 引入

import引入OC框架或者C库.

2.1.2 注释

单行注释:

//单行注释

多行注释:

/*第一行注释

第二行注释*/

2.1.3分号

Swift不要求单行语句以分号结尾,但是多条语句在一行需要分号相隔

2.1.4关键字

2.1.5空格

运算符不能跟在变量常量后

2.1.6 标识符

区分大小写

可以以下划线_字母开始,不能以数字开始

可以使用简单Unicode字符

使用关键字作为标识符,在前后添加`

2.1.7 数据类型

Int 整数(长度与平台字长相同)

UInt 无符号整数(长度与平台字长相同)

Float Double 32位浮点数, 64位浮点数,默认使用Double

Bool 布尔值, 布尔常量true, false

String 字符串

Character 字符(单个字母)

Optional 可选类型

2.1.8 类型别名

typealias aliasname = Int
var number: aliasname = 10

typealias关键字将aliasname(自定)设为Int类型的别名

2.1.9 声明

var声明变量 let声明常量

var number1 = 10
var number2: Int = 10
var number3: Int
number3 = 10

number1, number2, number3都为Int类型,值为10

number1没有指定数据类型,swift会自动进行类型推断,浮点数类型的类型推断会默认为Double类型而非Float

2.2 可选类型

swift不会自动为变量赋初始值, 在变量使用之前需要对其初始化

可选类型即 Optinal类型, 指”变量可能有一个值”

var optvar1: Int?
var optvar2: Int? = 10
var optvar3: Optional<Int>

其中,optvar1和optvar3是一样的,都是声明了一个Optional类型变量, 这个变量可能包含一个Int类型的值(也可能不包含), 因为没有显式赋值,所以optvar1和optvar2有一个默认值为nil, nil表示这个变量是空的.

optvar2也声明了一个Optinal类型变量,这个变量赋了初值Int类型10.

3 Playground

3.1 创建工程

在xcode中,新建一个工程(文章默认以iOS应用),在life Cycle选择UIKit App Delegate, 语言选择Swift即可。

3.2 文件结构

新建工程后,呈现在面前一堆文件,那么分别都是些什么作用的?

|-XXX //主要文件目录
  |-AppDelegate.swift           //工程默认入口
  |-SceneDelegate.swift         //页面默认入口
  |-ContenView.swift            //SwiftUI用,不使用SwiftUI时建议删除
  |-Assets.xcassets             //图像资源管理工具
  |-LaunchScreen.storyboard     //用于页面布局管理
  |-info.plist                  //工程信息

3.2.1 AppDelegate

AppDelegate是新建一个工程后默认的工程入口,类似于C中的main.c.

@main.c就是程序执行的入口。AppDelegate是app启动后系统调用的第一个类。

AppDelegate中有3个重要的方法

func application(_:didFinishLaunchingWithOptions:) -> Bool
func application(_:configurationForConnecting:options:) -> UISceneConfiguration
func application(_:didDiscardSceneSessions:)

func application(_:didFinishLaunchingWithOptions:) -> Bool :在程序刚启动的时候调用,用于执行应用程序设置。

func application(_:configurationForConnecting:options:) -> UISceneConfiguration :用来调用以获取和创建新的场景。

func application(_:didDiscardSceneSessions:) :当用户丢弃一个scene时,就会调用此方法。

3.2.2 SceneDelegate

SceneDelegate用于负责屏幕上显示内容

scene(_:willConnectTo:options:)
sceneDidDisconnect(_:)
sceneDidBecomeActive(_:)
sceneWillResignActive(_:)
sceneWillEnterForeground(_:)
sceneDidEnterBackground(_:)

scene(_:willConnectTo:options:) :是UISceneSession调用的第一个方法,会创建一个初始的视图

sceneDidDisconnect(_:) :场景在后台不活跃时断开会话执行。此时程序并不一定会被杀死,只有场景会被断开。

作者:Dengxz Alex
链接:http://dengxz.me/2020/11/23/swift-ios/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可