用swift写可执行文件_swift写文件 - CSDN
精华内容
参与话题
  • swift可以后台

    千次阅读 2016-10-19 22:48:08
    今天无意之中,听到swift可以后台,觉得好惊讶。然后去搜索各种资料,然后没有什么收获,但有个github地址 ... 运行Perfect 用swift写后台。
      今天无意之中,听到swift可以写后台,觉得好惊讶。然后去搜索各种资料,然后没有什么收获,但有个github地址 https://github.com/PerfectlySoft/PerfectDocs/blob/master/guide.zh_CN/gettingStarted.md 。  运行Perfect 用swift写后台。
    展开全文
  • Swift快速入门(一)第一个Swift程序

    万次阅读 2016-01-23 14:58:02
    本系列只是一个Swift快速入门的教程,并没有详尽的介绍SwiftSwift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学习本...

    1. 本系列说明
    本系列只是一个Swift快速入门的教程,并没有详尽的介绍Swift,Swift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学习本系列并不需要obj-c的知识,但是如果你想开发iOS,obj-c是必须要学的,因为Swift并不能很快的替代obj-c。另外本系列基于OS X EI Captitan 10.11.2,Xcode7.2。

    2. Swift介绍
    Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift吸收了众多现代编程语言的优点,尽力的提供简洁的编程语言和强大的功能。

    3. 第一个Swift程序
    Swift源文件的第一行可执行的代码就是Swift的程序的入口:

    print("Hello World")

    Swift程序的执行语句可以无须任何符号作为结束,Swift把每行代码作为了一个语句。但是如果在一行写了多个Swift语句则应该用”;”来作为语句的结束符。

    print("Hello");print("World")

    笔者还是建议用”;”来作为语句的结束符,这样可读性更强。

    3. Playground工具介绍

    Playground是一个简单的测试环境,主要是用于快速测试Swift语法功能和验证API功能,并不是用来进行实际开发应用。如果开发者对Swift语法功能不太确定,则可以用Playground来测试代码,其次Playground也可以用来验证某个函数,类的功能。

    首先我们启动Xcode,选中Playground
    这里写图片描述

    接着在Name文本框输入Playground的名字

    这里写图片描述

    Playground保存成功后就会看到下面的编辑界面,左边是编辑界面,当开发者在左边编写代码,定义变量和常量之后,即可在右边是实时的看到变量或常量的值。我们将上面将的代码写进去就会看到,右边显示”Hello World”说明我们的代码没有问题。下面是运行按钮,点击运行按钮,控制台输出Hello World,第一个Swift程序就完成了。
    这里写图片描述

    4. 用swiftc编译Swift程序
    swiftc的命令基本格式是

     swiftc -o <生成文件> <源程序> 

    我们用文本编辑工具(我用的是Notepad+)在里面写上print(“Hello World”),保存在桌面取名为hello.swift
    打开终端程序,进入桌面目录,输入如下命令:

    swiftc -o hello.out hello.swift

    我们会发现桌面生成了hello.out文件,接下来我们执行命令

    ./hello.out

    这个命令会执行当前目录下的hello.out程序,执行该程序会看到输出Hello World

    上述的编译,运行完整过程:
    这里写图片描述

    本篇先到这里,接下来会讲Swift的基本语法。

    展开全文
  • Swift编写Android应用程序入门

    千次阅读 2019-03-07 11:25:16
    前言Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。本文解释了如何在你的安卓手机上运行一个简单的“hello,world”程序。预备知识为了能顺利使用这份向导,你需要: 1. 可以...

    #前言
    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。本文解释了如何在你的安卓手机上运行一个简单的“hello,world”程序。
    #预备知识
    为了能顺利使用这份向导,你需要:

    1. 可以编译Swift源码的Linux环境。stdlib目前只能在Linux环境下编译成安卓可用版本。在尝试为安卓构建之前,确保你能够参考Swift项目的README为Linux做编译。
    2. 安卓NDK,高于或等于21版本,在以下链接提供下载:
      http://developer.android.com/ndk/downloads/index.html.
    3. 一台可以远程调试的安卓设备。我们需要通过远程调试来讲stdlib结果部署到安卓设备上。你可以按以下官方向导来远程调试: https://developer.chrome.com/devtools/docs/remote-debugging.
      现在来给大家介绍如何在安卓环境下显示由Swift编写的程序"Hello,World".

    #安卓上的”Hello, world"
    ##1. 构建Swift Android stdlib 依赖

    你可能注意到了,为了构建Linux下的Swift stdlib,你需要 apt-get install libicu-dev icu-devtools。 简单来说,构建在安卓设备上使用的Swift stdlib需要libiconv和libicu。然而,你需要这些库的安卓设备版本。
    为安卓设备构建libiconv和libicu:

    1. 确定你安装了 curl, antoconf, antomake, libtook 和git。
    2. 克隆 SwiftAndroid/libiconv-libicu-android 项目。通过命令行执行以下命令:git clone git@github.com:SwiftAndroid/libiconv-libicu-android.git。
    3. 在命令行执行 which ndk-build。确定在你下载的安卓NDK里ndk-build能显示可执行路径。如果不能显示,你需要将安卓NDK的目录加到你的PATH里。
    4. 在命令行输入 libiconv-libicu-android 目录,然后执行 build.sh。
    5. 确定构建脚本在你的libiconv-libicu-android目录构建了 armeabi-v7a/icu/source/i18n和armeabi-v7a/icu/source/common目录。
    

    ##2. 构建安卓使用的Switf stdlib
    输入你的Swift目录,然后运行构建脚本,将路径传递给安卓NDK和libicu/libiconv目录:

    $ utils/build-script \
        -R \                                           # Build in ReleaseAssert mode.
        --android \                                    # Build for Android.
        --android-ndk ~/android-ndk-r10e \             # Path to an Android NDK.
        --android-ndk-version 21 \                     # The NDK version to use. Must be 21 or greater.
        --android-icu-uc ~/libicu-android/armeabi-v7a/libicuuc.so \
        --android-icu-uc-include ~/libicu-android/armeabi-v7a/icu/source/common \
        --android-icu-i18n ~/libicu-android/armeabi-v7a/libicui18n.so \
        --android-icu-i18n-include ~/libicu-android/armeabi-v7a/icu/source/i18n/
    

    ##3. 编译hello.swift并在安卓设备上运行
    创建一个简单的Swift文件,命名为 hello.swift:

    print("Hello, Android")
    

    使用步骤2中构建好的Swift编译器来编译Swift源码,目标设定为安卓:

    $ build/Ninja/ReleaseAssert/swift-linux-x86_64/swiftc \                   # The Swift compiler built in the previous step.
        -target armv7-none-linux-androideabi \                                # Targeting android-armv7.
        -sdk ~/android-ndk-r10e/platforms/android-21/arch-arm \               # Use the same NDK path and version as you used to build the stdlib in the previous step.
        -L ~/android-ndk-r10e/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a \  # Link the Android NDK's libc++ and libgcc.
        -L ~/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.8 \
        hello.swift
    

    这样应该会在你执行命令的目录下生成一个hello可执行文件。如果你试图在你的Linux环境下执行这个可执行文件,你会看到如下错误:

    cannot execute binary file: Exec format error
    

    这正是我们想要的错误:因为这是为执行在安卓设备上构建的可执行文件–它不应该能在Linux上执行。下一步,让我们将它部署到安卓设备上来执行它。

    ##4. 将构建好的产品部署到设备
    你可以使用adb push 命令来将构建好的产品从Linux环境拷贝到安卓设备。当你执行adb devices命令前确定你的设备连接好并且可以被列出,然后执行以下命令来拷贝Swift Android stdlib:

    $ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftCore.so /data/local/tmp
    $ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftGlibc.so /data/local/tmp
    $ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftSwiftOnoneSupport.so /data/local/tmp
    $ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftRemoteMirror.so /data/local/tmp
    $ adb push build/Ninja-ReleaseAssert/swift-linux-x86_64/lib/swift/android/libswiftSwiftExperimental.so /data/local/tmp
    
    

    另外,你也需要拷贝安卓NDK的libc++:

    $ adb push ~/android-ndk-r10e/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so /data/local/tmp
    
    

    最后,你需要拷贝你前一步构建好的hello可执行文件:

    $ adb push hello /data/local/tmp
    

    ##5. 在安卓设备上执行“Hello, World"
    你可以在安卓设备上使用 adb shell 命令来执行hello可执行文件:

    $ adb shell LD_LIBRARY_PATH=/data/local/tmp hello
    

    你可以看到以下输出:

    Hello, Android
    

    祝贺你!你刚刚在安卓上运行了你的第一个Swift程序。
    大家如若不信,可以按照上面步骤自己试试.

    注意:本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接.
    

    英文原文:Getting Started with Swift on Android
    链接:https://github.com/apple/swift/blob/master/docs/Android.md

    展开全文
  • Swift架构和原理详解

    千次阅读 2018-02-21 19:54:01
    一 关于存储对象存储系统是综合了...二 Swift特点极高的数据持久性完全对称的系统架构无限的扩展性无单点故障三 Swift的物理架构四 Swift的逻辑架构五 Swift各组件1 Swift proxy nodeSwift-proxy server2 Swift s...
    一 关于存储
    对象存储系统是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠行,跨平台性以及安全的数据共享的存储体系结构。

    二 Swift特点
    极高的数据持久性
    完全对称的系统架构
    无限的可扩展性
    无单点故障

    三 Swift的物理架构

    四 Swift的逻辑架构

    五 Swift各组件
    1 Swift proxy node
    Swift-proxy server
    2 Swift storage node
    swift-account server
    swift-container server
    swift-object server

    六 Proxy Server

    七 Account Server

    八 Container Server

    九 Object Server

    十 Swift的操作流程
    假设:一个对象在Swift集群中保存3个副本(Replica)
    修改一个Swift对象
    1 Proxy server会根据/account/container/object查询Ring文件,得到存储该对象的节点列表(长度为3)
    2 Proxy Server会将请求转发到这三个节点执行修改操作。如果只有两个节点写入成功,就认为这次PUT操作成功。
    3 写入失败的节点在一段时间后将会得到写入成功节点Object Replicator进程推送过来的数据。
    从Swift中获取一个对象
    1 Proxy Server会根据/account/container/object查询Ring文件,得到存储该对象的节点列表(长度为3)
    2 Proxy Server和上述3个节点交互,如果有两个节点确认对象状态OK,则转步骤3,否则返回失败
    3 Proxy Server随机选取一个健康的节点获取数据并返回给用户。

    十一 Swift的原理
    Swift使用的算法,存储理论主要有以下几个:
    一致性哈希算法
    Partition
    Replica
    Zone
    Weight
    Ring

    十二 一致性hash

    十三 Partition

    十四 Replica
    1 需要有冗余的副本来保证数据安全
    2 理论依据主要来源NWR策略(也叫Quorum协议)
    NWR是一种在分布式存储系统中用于控制一致性级别的策略
    N代表同一份数据的Replica的份数
    W是更新一个数据对象时需要确保成功更新的份数
    R代表读取一个数据需要读取的Replica的份数
    公式W+R>N,保证某个数据不被两个不同的事务同时读和写
    公式W>N/2保证两个事务并发写某一个数据

    十五 Zone
    所有的Node都在一个机架或一个机房中
    断电,网络故障等
    对机器的物理位置进行隔离,以满足分区容忍性
    引入了Zone的概念,把集群的Node分配到每个Zone中
    Zone的大小可以根据业务需求和硬件条件自定义

    十六 Weight
    分配到更多的partition
    更好的利用已有的存储空间
    避免由于存储空间不同带来的问题

    十七 Ring

    十八 测试用部署模式

    十九 常用部署模式

    二十 Swift手动安装步骤
    公共安装配置
    Storage节点安装
    Proxy节点安装
    安装验证

    二十一 网络拓扑

    二十二 Swift的使用
    1 列出所有container
    swift list
    2 列出container中的文件
    swift list <container name>
    3 创建container
    swift post <container name>
    4 上传文件
    swift upload <container name> <file_or_directory>
    5 删除文件
    swift delete <container name> <object name>

    二十三 支持Swift的工具

    二十四 常见错误排查
    1 401认证错误
    检查用户名密码以及tenant是否正确
    检查认证配置是否正确
    2 503错误
    检查/srv/node/sdb1是否存在
    检查是否是xfs文件系统
    检查读写权限
    展开全文
  • OpenStack之swift安装笔记

    千次阅读 2015-06-19 10:47:08
    本片文章详细介绍了OpenStack中对象存储swift的安装配置过程,并描述了遇到的问题及及解决方法。
  • 在 《Swift入门》Ubuntu 14 server安装Swift运行环境 中,从Bluemix上下载的Swift应用入门示例中,在执行swift build”命令时,提示:error: unable to invoke subcommand: /home/aven/swift-2.2-RELEASE-ubuntu...
  • swift 框架大全--NB 转自github

    万次阅读 2016-11-03 16:47:01
    Swift从Objective-C混合的md文件中抽出(正在进行…)使用方法:根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性。问题反馈:请广大网友只按照目录结构(即使目录结构有问题)添加三方库,并pu
  • Swift比Objective-C有什么优势

    千次阅读 2016-07-18 15:21:58
    Swift比Objective-C有什么优势
  • 今天开始用swift写服务器(一)

    千次阅读 2017-05-02 17:09:48
    用swift写服务器的已经不是什么新鲜事了,这几年的发展,也是swift在服务端的表现越来越成熟,目前比较流行服务端框架主要有Vapor、Perfect、Kitura和Zewo,他们各有长短,本人这次主要是使用Perfect来的,因为...
  • Swift开发学习(一):初始篇

    千次阅读 2014-06-09 21:14:08
    一步一步教你开始Swift开发之旅
  • 一直以来都在使用openstack的swift来做分布式存储,至于为什么使用其来做存储在这里就不说明(网上搜搜其的优点就知道了), 随着项目的步步深入,越来越多的问题也随之而来。在项目进行的过程中对swift的理解也...
  • swift 框架大全

    万次阅读 2017-06-26 11:27:09
    版本:Swift github排名 https://github.com/trending,github搜索:https://github.com/search 主要工作说明:  1. 将Swift从Objective-C混合的md文件中抽出(正在进行…) 使用方法:根据目录关键字...
  • swift oc混编 打包framwork

    千次阅读 2017-05-06 18:47:20
    最近由于项目需求需要使用Swift做开发,但之前的好多有用的东西都是使用OC的,鉴于这种情况最好的方式当然是使用swift重写,但这样的工作量太大,而且不能保证功能的稳定性,所以自己就尝试的使用Framework来嵌入...
  • Swift 包管理器教程

    千次阅读 2017-05-05 09:00:09
    原文:An Introduction to the Swift Package Manager 作者: Mikael Konutgan 译者:kmyhy Swift 包管理器的正式发布是随着 Swift3.0 一起发布的,它是一个用于构建能够运行在 macOS 和 Linux 上的 Swift 库和 ...
  • ios .framework 制作

    千次阅读 2019-03-05 14:54:12
    如果你想将你开发的框架模块提供给其他人使用,一种方法是直接提供源代码。然而,这种方法对于商业框架提供并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想开源出来。 另一种方法是将你的代码编译成...
  • Swift成为主流语言的10个理由

    万次阅读 2016-05-24 22:42:44
    是时候使用易入手又全面的Swif语言为iOS和mac OS X做应用开发了。 虽然编程语言不会那么容易消逝,但坚持衰落范例的开发小组正在这么做。如果你正为移动设备开发应用程序,并且你还没有研究Swift,那么注意:当Swift...
  • 使用Swauth认证多节点安装Swift

    万次阅读 2012-07-04 14:28:38
    转载请写明出处:... 1. 摘要说明  本文所涉及到的所有操作都是在Ubuntu Server 11.10 64位系统上通过验证。本文参考了Openstackswift的Instructions for a Multiple Server SwiftInstallation
  • Linux下搭建Swift开发环境

    千次阅读 2015-12-11 17:16:49
    前几天Swift开源了,希望大牛们把这门开源的语言移植到各个平台,将来在各个开发领域,嘿嘿,自己接触Swift不是很深,接下来要深入研究这门语言了,当然,Objective-C也不能丢掉!废话少说,开始Linux下搭建Swift...
  • Swift2.3 --> Swift3.0 的变化

    千次阅读 2016-10-15 09:45:08
    Swift3.0语法变化在前面首先和大家分享一下学习新语法的技巧: Xcode8打开自己的Swift2.3的项目,选择Edit->Convert->To Current Swift Syntax… 让Xcode帮我们把Swift2.3的代码转换为Swift3.0。 手动调出Xcode...
  • 在一台机器上部署swift存储和swauth认证

    万次阅读 热门讨论 2012-04-09 16:04:30
    在一台机器上部署swift存储和swauth认证 转载请说明出处: http://blog.csdn.net/cywosp/article/details/7419082 1. 摘要说明 本文所涉及到的所有操作都是在Ubuntu Server 11.10 64位系统上通过验证。...
1 2 3 4 5 ... 20
收藏数 15,857
精华内容 6,342
关键字:

用swift写可执行文件