当前位置: 首页 > 面试题库 >

什么是Swift Compiler-Xcode 6 Building Settings中的搜索路径导入路径?

江阳冰
2023-03-14
问题内容

在Xcode 6(Beta)中,有Swift编译器-搜索路径,导入路径。它有什么作用?


问题答案:

只是分享我在连接点的日子里发现的东西。 简短的答案 ,导入搜索路径指定Swift在何处查找和导入模块。

模块和语义导入

什么是模块?通过将文本预处理器包含模型替换为更健壮,更有效的语义模型,模块改善了对软件库API的访问。从用户的角度来看,该代码看起来仅稍有不同,因为一个代码使用了导入声明,而不是这样的#include预处理程序指令:

import std.io

它于2012年11月由Apple在LLVM DevMeeting上首次宣布。您仍然可以在此处找到Doug
Gregor的演讲(视频和PDF)。在WWDC
2013上,语义导入与iOS
7一起被引入,@import仅此而已。因此,决定模块是否成为新语言Swift的一部分。模块的文档可以在这里找到。


示例-如何导入

为了尝试,下面是使用HTML Tidy库模块创建示例应用程序项目的步骤。

  • 在Xcode 6中创建一个Swift项目(OS X或iOS)

  • 创建一个module.map文件,并将其放置在目录中。例如/Users/vladof/module/

    module tidy [system] {
    header "/usr/include/tidy/tidy.h"
    header "/usr/include/tidy/buffio.h"
    link "tidy"
    export *
    

    }

  • 在我的情况下,进入Build Settings,将Swift Compiler - Search Paths> 设置Import Paths为放置module.map文件的目录/Users/vladof/module。然后import tidy,即使在Swift REPL中,您也可以使用和利用HTML Tidy库的有用API。

  • 进口

    import tidy
    
  • 范例程式码

        var input: CString = "<node>upper case node</node>"
    var tdoc: TidyDoc = tidyCreate() // Initialize "document"
    var rc: Int32 = -1
    var ok = tidyOptSetBool(tdoc, TidyUpperCaseTags, yes) // Convert tags to upper cases
    ok = tidyOptSetBool(tdoc, TidyXmlTags, yes) // Convert to XML

    if ok.value == 1 {
        rc = tidyParseString(tdoc, input) // Parse the input
        if rc >= 0 {
            rc = tidyCleanAndRepair(tdoc) // Tidy it up
        }
        if rc >= 0 {
            rc = tidySaveStdout(tdoc) // Pretty print to console
        }
    }
  • 打印
    <NODE>upper case node</NODE>
    

得出结论

我也尝试过curl模块。实际上,有些API在我测试时并未导入,例如curl_easy_setopt(),让我们希望它们会在不久的将来赶上来。但是我很肯定这为Swift开发人员打开了一扇门。



 类似资料:
  • 我正在启动一个新的vue.js项目,因此我使用vue cli工具构建了一个新的webpack项目(即)。 在浏览生成的文件时,我注意到文件中有以下导入: 我以前从未在路径中看到at标志()。我怀疑它允许相对路径(也许?),但我想确定我了解它真正的功能。 我尝试在网上搜索,但找不到解释(可能是因为搜索“at sign”或使用文字字符作为搜索条件没有帮助)。 在这条路径中做了什么(链接到文档会很好),

  • 10.2. 导入路径 每个包是由一个全局唯一的字符串所标识的导入路径定位。出现在import语句中的导入路径也是字符串。 import ( "fmt" "math/rand" "encoding/json" "golang.org/x/net/html" "github.com/go-sql-driver/mysql" ) 就像我们在2.6.1节提到过

  • 输入出发地和抵达地,可搜索前往目的地的路径。 轻触(选项)>[搜索路径],在出发地与抵达地的字段各自输入关键词并轻触[搜索]。地图会显示最短路径。 可从书签中选择出发地及抵达地。请轻触(书签),选择地点。 A ) (徒步)/(乘车) 可选择路径的移动方式。轻触即会以选择的移动方式搜索最短路径。 B ) 与目的地间的距离及所需时间 C ) (显示列表)/(隐藏列表) 轻触即可将搜索结果列表切换为显示

  • 使用指南 - 统计设置 - 转化设置 - 什么是转化路径 路径是指访客为到达您所设定的目标页面必须依次经过的中间页面。 >例如,网站注册通常会包含以下几个步骤: 步骤1:阅读网站相关协议; 步骤2:填写注册基本信息; 步骤3:提交注册信息; 目标页面:注册成功页面。 当注册信息成功提交后,网站通常会显示注册成功页面。 如果您将注册成功页面设置为目标页面,则可以将步骤1、步骤2和步骤3显示的页面均设

  • 考虑创建别名方法。文档说:。我不明白这是什么?假设有 2 个表 - 客户(id,和 假设条件 - 关联路径应该是什么? “Customer.id = Order.customer_id” 或者只是我在某些论坛上看到的“订单”? 有人能为几种情况提供几个例子吗,比如左连接、内连接,当然还有带子句的连接?

  • 有没有办法让打字稿编译器在给定的目录中搜索声明文件?类似于C的INCLUDE_PATH。