[置顶] 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
    }
}

其中:

func关键字是定义一个函数;

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 代码更容易读和写。

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

[置顶] iOS8开发~Swift(一)入门_第1张图片


打开项目后,目录结构如图:

[置顶] iOS8开发~Swift(一)入门_第2张图片


看到这里,我们并不陌生,和OC项目结构一样,Main.storyboard还在,只不过以前到 .h和.m文件没有了,替换成了选择到 .wift文件,但main.m文件没有了,那以前OC项目中UIApplicationMain哪去了 ?别着急,打开AppDelegate.swift

[置顶] iOS8开发~Swift(一)入门_第3张图片


愿开在这里,虽然写法变了,不过意并没有改变,对号OC代码,不难理解AppDelegate但定义形式,如果写过JAVA和JS代码,看到这里一定兴奋了,太熟悉了,但仅仅了解OC也没必要担心,因为很容易理解。class定义一个类,其中有成员变量和方法,成员变量用var定义,方法用func定义。遮掩一个.swift文件替代了OC的 .h和.m文件,看起来很简洁,也很容易理解。

项目大体结构了解了,那现在向世界问好吧:

打开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.
    }
}

运行效果:

[置顶] iOS8开发~Swift(一)入门_第4张图片


到这里,学习Swift到第一个程序算结束了!更多内容请点击这里

欢迎加入群共同学习和进步:QQ群:170549973

你可能感兴趣的:([置顶] iOS8开发~Swift(一)入门)