zoukankan      html  css  js  c++  java
  • IOS 应用开发

    一、Swift简述

    1.1初识Swift

    Swift是苹果在WWDC 2014所发布的一门语言,用于开发IOS的OS X应用程序。

    2010年7月LLVM编译器的原作者苹果开发工具部门总监克里斯·拉特纳开始着手开发Swift语言,一直到到2014年6月才发布

    苹果宣称Swift的特点是:快速、现代、安全和具有交互性

    Swift的处理速度非常快。Swift比Objective-c快1.4倍,比python快3.9倍。

    在很多语法特性上Swift和一些脚本确实非常相似。但是,在应用程序开发中,Swift不是以一门脚本语言来运行的,所有的Swift代码都会被LLVM编译为本地代码,然后以极高的效率运行。

    Swift和Objective-c都是类型安全的语言,变量和方法都有明确的返回,并且变量在使用前需要进行初始化。而在语法方面,Swift迁移到了业界公认的非常先进的语法体系,其中包含了闭包、多返回和大量的函数式编程的理念,函数终于可以作为变量保存了。初步看来,Swift语法上借鉴了Ruby的很多人性化设计,但借助苹果自己手中强大的LLVM编译器,在性能上必然要甩开Ruby很远。

    从另一方面说,Swift的代码又是可以通过交换来解释执行的。Xcode6加入了所谓的Playground功能来对开发者输入Swift语句。这里之所以把“解释”两个字打上双引号,是因为即使在命令行工具交互地执行Swift语句。

    1.2了解Playground

    本书使用Xcode 6 beta4 作为开发工具,与之前发布的beta1版本相比,beta4对Swifit语言做了大幅修改。开发者可以使用Swift来编写更好、更安全的应用程序,而且新版本的Swift也修正了许多开发者提出的请求,尤其是对数组进行了重新设计。但是beta版本毕竟不同与正式版,依然存在着许多Bug。

    1.2.1Playground的编辑器模式

    Playground是什么呢?它是xcode6中引入的一种文档类型,在该文档类型的文件中封装了一些有用的东西,其中包括全部的swift代码。swift代码会在playground环境中实时运行,并且只要我们在playground中编辑swift代码,就会马上自动显示结果。swift文档也能包含一个文件夹,里面可以内嵌那些供代码使用的资源。

    例如:

     

     在上诉代码中,首先定义了变量string,然后通过加号将3个字符串链接并赋值给它。

    变量string是String类型,当我们生命常量或变量的时候,通过加上类型标注来说明常量或变量中要存储的类型。方法是在常量或变量名后面加上一个冒号和空格,再加上类型名称。之前的声明语句也可以写成下面这样。

    var string: String = "hello" + " " + "world"

    除了数字类型时间轴中还可以显示字符串、颜色和图像类型。当我们使用println函数的时候,在时间轴上还会显示控制控制台输出项目。

    当时间轴中有太多的Value History项目,想要收起某个临时不用想吗点,点击该项目顶端的表达式即可。

    在当前swfit代码的结尾处添加下面的代码:

    let color = UIColor.blueColor()

    2.创建第一个项目

    (1)打开xcode工具,选择File-》New-〉Project

    (2)选择“single View Application”,并点击“next”,创建一个简单实例app应用

    (3)输入项目名,公司名称、公司标识前缀名

    3.项目目录

    Hellow World

    Hellow WorldTests

    Hellow WorldUITests

    Products

    一个项目总共有以上四个项目,

    3.1Hellow World目录

    从目录中可以看出总共有6个文件,AppDelegate.swift、ViewController.swift、

    Main.storyboard、Assets.xcassets、LaunchScreen.storyboard、Info.plist。

    3.2打开main.storyboard,默认看到一个简单的空白应用界面,大小为平板界面大小。如果开发都只需要开发兼容iphone手机的app,那么可以把Use Auto Layout的勾选去掉

    二、Swift基本语法

    如果创建的是OS X playgroud 需要引入Cocoa,例如

    import Cocoa

    var myString = “Hello World!”

    print(myString)

    如果我们想要创建IOS playground则需要引入UIKit

    import UIKit;

    var myString = “Hello,World!”

    print(myString)

    标识符

    标识符就是给变量、常量、方法、函数、枚举、结构体、类、协议等指定名字。构成标识符的字母均有一定的规范,Swift语言中标识符的命名规则如下:

    区分大小写,Myname与myname是两个不同的标识符;

    标识符首字符可以以下划线(_)或者字母开始,但不能是数字;

    标识符中其他字符可以是下划线(_)、字母或数字;

    例如:userName、User_Name、sys_val、hign等为合法的标识符,而2mail、room#和class为非法标识符。

    swift空格

    Swift空格并不是箱c/C++,Java那样完全忽视空格,Swift对空格的使用有一定的要求,但又不像Python对缩进的要求那么严格。在Swift中,运算符不能直接跟在变量或常量的后面。

    let a = 1 + 2

    打印输出

    Swift使用print函数打印输出:

    print("Runnable")//输出

    print函数是一个全局函数,完整的函数签名为:

    public func print(items:Arry...,separator:String = defualt, Iteminator: String default)

    如果我们箱让其不换行输出,只需要 

    print("\(x)",terminator: "")

    接收用户的输入可以使用readLine()

    三、Swift数据类型

    3.1内置数据类型

    Int

    一般来说,你不需要专门指定整数的长度。Swift提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同。

    在32位平台上,Int和Int32长度相同。

    在64位平台上,Int和Int64长度相同。

    UInt

    Swift也提供了一个特殊的无符号UInt,长度与当前平台的原生字长相同:

    浮点数:Float、Double

    浮点数是有小数不法的数字,比如3.1415,0.1和-23.5

    浮点类型笔整数类型表示的范围更大,可以存储比Int类型更大或者更小的数字。Swift提供两种有符号浮点数类型:

    Double表示64位浮点数。当需要存储很大或者很高精度的浮点数时请用此类型。

    Float表示32位浮点数。精度邀请不高的话可以使用此类型

    布尔值:Bool

    Swift有一个基本的布尔类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift有两个布尔常量,true和false。

    字符创:String

    字符串是字符的序列集合,例如:

    “Hello world”

    字符Character

    字符指的是单个字母:

    “C”

    可选类型Optional

    使用可选elixir来处理值可能缺失的情况。可选类型表示有值和没有值:

    数值范围

    下表显示了不同变量类型内存的存储空间,及变量类型的最大最小值:

    类型别名

    typealias newname = type

    例如以下定义了Int的类型别名为Feet:

    typealias Feet = Int

    import Cocoa

    typealias Feet = Int

    var distance: Feet = 100

    print(distance)

    类型安全

    Swift是一个类型安全的语言。

    由于Swift是类型安全的, 所以它会在编译你的代码时进行类型检查,并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误。

    import Cocoa

    var varA = 42

    varA = “This is hello”

    print(varA)

  • 相关阅读:
    【Lintcode】112.Remove Duplicates from Sorted List
    【Lintcode】087.Remove Node in Binary Search Tree
    【Lintcode】011.Search Range in Binary Search Tree
    【Lintcode】095.Validate Binary Search Tree
    【Lintcode】069.Binary Tree Level Order Traversal
    【Lintcode】088.Lowest Common Ancestor
    【Lintcode】094.Binary Tree Maximum Path Sum
    【算法总结】二叉树
    库(静态库和动态库)
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/riyueqian/p/15719410.html
Copyright © 2011-2022 走看看