iOS8开发~Swift(一)入门
一、概论及Swift介绍
iOS7刚公布多时候,苹果引入了JavaScriptCore.framework用来处理JavaScript,看到了能够接触其它编程语言的契机,使iOS程序猿不用吊死在OC这一颗树上。当但iOS8公布的时候。简直Hold不住了。新的开发语言《Swift》出现了!Swift是一种新的编程语言,基于C和OC。可用于Cocoa和Cocoa Touch编程。编写代码中充满互动性和乐趣,且语法简洁而传神,能够使应用程序执行飞快。Swift是以后iOS和OS X的项目开发语言的选择之中的一个,或在您当前的应用程序中使用,由于Swift与Objective-C能够并驾的使用,实际上Swift能够与C和OC混编。
Xcode6下载地址:http://pan.baidu.com/s/1D3Z0i
Swift的特点:
1、安全性:增强了类型安全与类型判断。限制指针的直接訪问,而且自己主动管理内存。能够轻松地创建安全,稳定的软件。
func configureLabels(labels: UILabel[]) {
let labelTextColor = UIColor.greenColor()
for label in labels {
// label inferred to be UILabel
label.textColor = labelTextColor
}
}
当中:
funckeyword是定义一个函数;
labels: UILabel[] 的意思是labels是形參名字,UILabel[]是形參类型,表明是一个数组,数组里边元素是UILabel类型都对象。
let
labelTextColor = UIColor.greenColor() 是定义一个常量labelTextColor,曾经的[UIColor greenColor] 变成了如今的UIColor.greenColor()实现方式
for
label in labels { } 这个是一个for循环,OC的实现方式是这种 for(UILabel
*label in
(NSArray *)labels) {},但如今但方式更简洁了
label.textColor = labelTextColor UILabel对象的textColor属性设置,写法上和OC没差别
2、模块化:包含自选,泛型。元组,以及其它现代语言特性。
通过Objective-C的启示并在此基础上改进,Swift
代码更easy读和写。
let cities = ["London", "San Francisco", "Tokyo", "Barcelona", "Sydney"]
let sortedCities = sort(cities) { $0 < $1 }
if let indexOfLondon = find(sortedCities, "London") {
println("London is city number \(indexOfLondon + 1) in the list")
}
当中:
let
cities = ["London", "San Francisco", "Tokyo", "Barcelona", "Sydney"] 这样就定义了一个常量数组,当中元素上字符串类型,OC的字符串上@"string"。但Swift字符串和C字符串写法一样,如 "string",OC快捷方式定义数组能够使用@ ["London",
"San Francisco", "Tokyo", "Barcelona", "Sydney"],但如今Swift数组实现相对更简洁了,和C数组写法一样。
if
let indexOfLondon = find(sortedCities, "London") { }就是查找一个数组中是否存在某元素了。假设返回但Index存在,就打印
println()与NSLog但作用一样,仅仅只是NSLog(@"%d")换成了了如今println("London
is city number \(indexOfLondon + 1) in the list"),用 \(indexOfLondon + 1) 这样的形式替换了@"%d"这样的格式化输出。
3、功能强大:利用强大的模式匹配能够编写简单且表达性好的代码。格式化字符串清晰自然。通过Swift能够直接使用Foundation和UIKit框架。
let cities = ["London", "San Francisco", "Tokyo", "Barcelona", "Sydney"]
let sortedCities = sort(cities) { $0 < $1 }
if let indexOfLondon = find(sortedCities, "London") {
println("London is city number \(indexOfLondon + 1) in the list")
}
4、代码互动:使用playgrounds尝试新的技术,分析问题。和原型用户界面。
(Playgrounds
make writing Swift code incredibly simple and fun. Type a line of code and the result appears immediately.)
5、更快
以上參考 https://developer.apple.com/swift/
二、编写HelloWorld
一般学不论什么一门语言,第一个项目都会写个HelloWorld。那这里也依照规矩来一个:须要下载Xcode6,能够去官网下载https://developer.apple.com/cn/。稍后我会上传到网盘。
下载并安装完Xcode6之后。打开Xcode,而且新建一个项目(选择Single View Application模版):注意选择Language为Swift
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemZwcDI1Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
打开项目后,文件夹结构如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemZwcDI1Xw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
看到这里,我们并不陌生。和OC项目结构一样,Main.storyboard还在。仅仅只是曾经到 .h和.m文件没有了,替换成了选择到 .wift文件。但main.m文件没有了。那曾经OC项目中UIApplicationMain哪去了
?别着急,打开AppDelegate.swift
愿开在这里。尽管写法变了,只是意并没有改变。对号OC代码,不难理解AppDelegate但定义形式,假设写过JAVA和JS代码。看到这里一定兴奋了,太熟悉了,但只了解OC也不是必需操心。由于非常easy理解。
class定义一个类。当中有成员变量和方法,成员变量用var定义,方法用func定义。遮掩一个.swift文件替代了OC的
.h和.m文件,看起来非常简洁,也非常easy理解。
项目大体结构了解了。那如今向世界问好吧:
打开ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
} override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
OC代码中的#import <UIKit/UIKit.h>如今被更简洁的import UIKit替代,override func viewDidLoad() 重写父类方法。
在viewDidLoad()方法中加入例如以下代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
println("HelloSwift")
}
然后编译和执行,控制台打印HelloSwift,发现了没有,连一句代码结束分号都能够不用写了。但这个iOS开发离不开UI,所以这个HelloSwift太简单了,加入一个UILabel到页面,然后展示HelloSwift吧:
代码例如以下:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel()
label.textColor = UIColor.blackColor();
label.backgroundColor = UIColor.redColor();
label.text = "HelloSwift";
label.frame = CGRect(x:0, y:100, width:320, height:44)
self.view.addSubview(label)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
执行效果:
到这里,学习Swift到第一个程序算结束了!很多其它内容请点击这里
欢迎增加群共同学习和进步:QQ群:170549973
iOS8开发~Swift(一)入门的更多相关文章
- iOS8开发~Swift(二)Playground
一.Playground介绍 Playground是Xcode6中自带的Swift代码开发环境.俗话说"功欲善其事,必先利其器".曾经在Xcode5中编写脚本代码.比如编写JS.其 ...
- Apple Swift编程语言入门教程
Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 ...
- Swift语言入门之旅
Swift语言入门之旅 学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ...
- iOS开发-UI 从入门到精通(三)
iOS开发-UI 从入门到精通(三)是对 iOS开发-UI 从入门到精通(一)知识点的综合练习,搭建一个简单地登陆界面,增强实战经验,为以后做开发打下坚实的基础! ※在这里我们还要强调一下,开发环境和 ...
- iOS开发-UI 从入门到精通(二)
iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI ...
- iOS开发Swift篇—(一)简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- iOS开发Swift篇—(三)字符串和数据类型
iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www ...
- iOS开发Swift篇—(四)运算符
iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...
- iOS开发Swift篇—(五)元组类型
iOS开发Swift篇—(五)元组类型 一.元组类型介绍 1.什么是元组类型 元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素” 示例: let posit ...
随机推荐
- Tomcat与web程序结构与Http协议
telnet 一:打开telnet服务: 控制面板------> 程序和功能---> 打开或关闭windows功能---> 选中 Telnet客户端--->确定 二:测试tel ...
- Java+7入门经典 -1 简介
第一章 Java简介 1.1 Java概览 applet程序可嵌入网页; Java会通过隐式检测禁止Java applet的恶意代码; Java Server Pages-JSP 创建服务器应用程序, ...
- 【通信框架】Apache的开源通信框架thrift概述
在阅读的过程中有不论什么问题.欢迎一起交流 邮箱:1494713801@qq.com QQ:1494713801 一.作用 Thrift("Scalable Cross-Languag ...
- 【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ)
(前端用重点整理博客地址)链接地址:http://www.cnblogs.com/atree/archive/2011/06/30/jQuery-smartMenu-javascript.html 一 ...
- 使用ssh远程执行命令批量导出数据库到本地(转)
前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,1 ...
- 怎样制作一个相似Tiny Wings的游戏 Cocos2d-x 2.1.4
在第一篇<怎样使用CCRenderTexture创建动态纹理>基础上,添加�创建动态山丘,原文<How To Create A Game Like Tiny Wings with C ...
- Swift - 短信发送功能的实现
使用MessageUI.framework框架可以实现短信发送功能,步骤如下: (1)首先判断设备是否有发送短信功能 (2)如果设备允许发送短信,创建一个MFMessageComposeViewCon ...
- POJ - 1422 Air Raid 二分图最大匹配
题目大意:有n个点,m条单向线段.如今问要从几个点出发才干遍历到全部的点 解题思路:二分图最大匹配,仅仅要一条匹配,就表示两个点联通,两个点联通仅仅须要选取当中一个点就可以,所以有多少条匹配.就能够减 ...
- makefile 必知必会
Makefile 必知必会 Makefile的根本任务是根据规则生成目标文件. 规则 一条规则包含三个:目标文件,目标文件依赖的文件,更新(或生成)目标文件的命令. 规则: <目标文件>: ...
- 高仿精仿快播应用android源码下载
今天给大家在网上找到的一款高仿精仿快播应用android源码,分享给大家,希望大家功能喜欢. 说明源码更新中.... 源码即将上传 也可以到这个网站下载:download