一、Swift与OC的区别
1、创建是选择Swift语言
2、Swift中不区分.h.m,统一到.swift中,既Swift中swift文件声明和实现不在分开创建
3、导入类名、框架:
不需要导入类名,所有的类名都是公开的可以直接访问到 。
直接导入框架的名字,例如:import UIKit
4、OC程序入口是main函数
Swift的程序入口:代码是从上往下执行,@UIApplicationMain是程序的主入口
5、class 用来声明类
class后面是类名:冒号后面是父类,父类后面导入代理协议:在父类后面继续添加,写上代理协议的名字
例如:var window: UIWindow?:Swift声明一个变量(属性)
7、
变量常量的声明
var:声明一个变量
let:声明一个常量
声明公式
OC:数据类型 名字 = 值
Swift:var 名字:数据类型 = 值
let 名字:数据类型 = 值
Switf:语句结束之后,可以不写分号,但是如果一行有多条语句,就必须添加分号
Switf:也支持中文作为变量名(支持中文的编码格式)
字符串可以通过+拼接
如果声明的对象是变量,但是并没有去改变这个变量的值,系统会提示,可以声明成常量
Xcode7.3(Swift2.2)之后 ++在Swift3中弃用,改成+=
Swift:自动推断数据类型,如果没有告诉变量的数据类型,会自动推断他的类型
Switf:不同的数据类型,不允许计算
数据类型转换, 数据类型(要转换的变量)
如果声明变量的时候,不想在声明的时候去赋值,必须添加上变量的数据类型(因为没有推断的依据,推断不出数据类型)
Switf 中禁止 不同数据类型进行计算
拼接字符串->直接使用+拼接
Swift代码,格式要特别工整
方法的定义和调用
fanc定义方法
OC写法
- (void)viewDidLoad{
}
swift写法
func viewDidLoad(){
}
oc:
- (void)viewDidAppear:(BOOL)animated{
}
swift
func viewDidAppear(animated: Bool) {
}
OC:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
return YES;
}
swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return true
}
区间:
闭合区间 区间
半闭合区间
1 2 3 4 5
全闭合区间1...5
1 2 3 4 (5)
半闭合区间1..5
在Swift中提倡使用区间
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//声明一个变量
let 名字:NSString = "明天,你好"
// 输出。拼接字符串
print((名字 as String) + "蒲公英的约定")
// var age:Int = 18
// age = 18+10
// age+=1
// print(age)
let height = 180
print(height)
let name = "九九"
print(name)
// 相同数据类型可以相加
// var age = 18.4
// age = age+0.6
// print(age)
let age = 18
let yaerAge :Float = Float(age) + 0.5
print(yaerAge)
// Int(yaerAge)将float类型转换成int类型
//MARK:方法的调用
方法名字()
loadData()
无返回值大餐("你好")
print(有参有返回值("055346", 参数2: " 8oijkm"))
print(sum(10, b: 10))
// 调用UIVie里面的init
// Switf中调用其他类里面的方法,用.来调用
// 快捷创建一个对象:MyView() init
// 创建带有frame:MyView(frame: CGRectMake(0, 0, 300, 400))
/*
let view :MyView = MyView(frame: CGRectMake(0, 0, 300, 400))
view.backgroundColor = UIColor.redColor()
window!.addSubview(view)
*/
window = UIWindow.init(frame:UIScreen.mainScreen().bounds)
window?.backgroundColor = UIColor.yellowColor()
let rootVC:UITabBarController = UITabBarController.init()
let titles = ["识","听","我"]
// 数组初始化没有@
rootVC.viewControllers = [UINavigationController.init(rootViewController: LearnViewController()),UINavigationController.init(rootViewController: DrawViewController()),UINavigationController.init(rootViewController: UserViewController())]
// for (var i=0; i<rootVC.viewControllers?.count;i+= 1){
//
// }
/*
for (var i =0; i<rootVC.viewControllers?.count;i++){
let vc:UIViewController = rootVC.viewControllers![i]
vc.title = titles[i]
}
*/
/* int i = 0;
for UIViewController *vc in rootVC.viewControllers {
vc.titlt = titles[i];
i++;
}
*/
var i = 0
for vc in rootVC.viewControllers! {
vc.title = titles[i]
i += 1
}
// 区间
// for i in 0 .. rootVC.viewControllers!.count{
//
//
//
//
// }
window?.rootViewController = rootVC
window?.makeKeyAndVisible()
return true
}
//MARK:-------创建一个无返回无参的函数----
func 方法名字 () {
print("无返回无参的函数")
}
func loadData () {
print("正在加载数据......")
}
// MARK:-----无返回值带参-----
func 无返回值大餐 (参数名:NSString) {
print(参数名)
}
// MARK:-----有参有返回值---
func 有参有返回值 (参数名:NSString,参数2:NSString) -> NSString{
return "返回值类型相同的数据"
}
func sum (a:Int,b:Int) -> Int{
return a + b
}
func 创建更控制器(){
//创建UITabBarController
let rootVC:UITabBarController = UITabBarController.init()
let titles = ["识","听","我"]
// 数组初始化没有@
rootVC.viewControllers = [UINavigationController.init()]
window?.rootViewController = rootVC
}