GVKun编程网logo

Swift语法“ .bar”叫什么?(swift tabbar)

9

想了解Swift语法“.bar”叫什么?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于swifttabbar的相关问题,此外,我们还将为您介绍关于2、swift开发iOS——swift语法

想了解Swift语法“ .bar”叫什么?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于swift tabbar的相关问题,此外,我们还将为您介绍关于2、swift开发iOS——swift语法、ios – 转换为Swift 3错误:“转换为当前Swift语法失败无法找到测试主机…”、ios – 转换为当前Swift语法失败 – “没有这样的模块”(Swift 4,Xcode 9)、swift – 在switch语句中使用if let语法的新知识。

本文目录一览:

Swift语法“ .bar”叫什么?(swift tabbar)

Swift语法“ .bar”叫什么?(swift tabbar)

Swift具有以下方便的语法:

enum Foo {    case bar    case baz}func hoge(foo: Foo) {}hoge(foo: .bar) // This

它在enums 以外的地方被镜像:

struct Qux {    static let `default` = Qux()}func hoge(qux: Qux) {}hoge(qux: .default) // This

我不确定在对话/票务中该怎么称呼。也许是“类型推断点语法”?我不确定 此语法是否有正式名称? 如果是这样,那是什么?

答案1

小编典典

它称为 隐式成员表达式
。从语言指南的语法部分:

隐式成员表达式是在类型推断可以确定隐式类型的上下文中访问类型成员(例如枚举用例或类型方法)的缩写方式。它具有以下形式:

member name

例如:

var x = MyEnumeration.someValuex = .anotherValue

2、swift开发iOS——swift语法

2、swift开发iOS——swift语法

Swift 引入

我们可以使用 import 语句来引入任何的 Objective-C 框架(或 C 库)到 Swift 程序中。例如 import cocoa 语句导入了使用了 Cocoa 库和API,我们可以在 Swift 程序中使用他们。

Cocoa 本身由 Objective-C 语言写成,Objective-C 又是 C 语言的严格超集,所以在 Swift 应用中我们可以很简单的混入 C 语言代码,甚至是 C++ 代码。


Swift 标记

Swift 程序由多种标记组成,标记可以是单词,标识符,常量,字符串或符号。例如以下 Swift 程序由三种标记组成:

print("test!")

标记是:单词、符号

print

(

"test!"

)


注释

Swift的注释与C语言极其相似,单行注释以两个反斜线开头:

//这是一行注释

多行注释以/*开始,以*/结束:

/* 这也是一条注释,

但跨越多行 */

与 C 语言的多行注释有所不同的是,Swift 的多行注释可以嵌套在其他多行注释内部。写法是在一个多行注释块内插入另一个多行注释。第二个注释块封闭时,后面仍然接着第一个注释块:

/* 这是第一个多行注释的开头

/* 这是嵌套的第二个多行注释 */

这是第一个多行注释的结尾 */

多行注释的嵌套是你可以更快捷方便的注释代码块,即使代码块中已经有了注释。

分号

与其它语言不同的是,Swift不要求在每行语句的结尾使用分号(;),但当你在同一行书写多条语句时,必须用分号隔开:

import Cocoa

/* 我的第一个 Swift 程序 */

var myString = "Hello,World!"; print(myString)

标识符

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

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

标识符首字符可以以下划线(_)或者字母开始,但不能是数字;这个和C语言是接近的。

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

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

注意:Swift中的字母采用的是Unicode编码[1]。Unicode叫做统一编码制,它包含了亚洲文字编码,如中文、日文、韩文等字符,甚至是我们在聊天工具中使用的表情符号

如果一定要使用关键字作为标识符,可以在关键字前后添加重音符号(`),例如:

关键字

关键字是类似于标识符的保留字符序列,除非用重音符号(`)将其括起来,否则不能用作标识符。关键字是对编译器具有特殊意义的预定义保留标识符。常见的关键字有以下4种。

与声明有关的关键字

class deinit enum extension

func import init internal

let operator private protocol

public static struct subscript

typealias var

与语句有关的关键字

break case continue default

do else fallthrough for

if in return switch

where while

表达式和类型关键字

as dynamicType false is

nil self Self super

true _COLUMN_ _FILE_ _FUNCTION_

_LINE_

在特定上下文中使用的关键字

associativity convenience dynamic didSet

final get infix inout

lazy left mutating none

nonmutating optional override postfix

precedence prefix Protocol required

right set Type uNowned

weak willSet

Swift 空格

Swift语言并不是像C/C++,Java那样完全忽视空格,Swift对空格的使用有一定的要求,但是又不像Python对缩进的要求那么严格。

在Swift中,运算符不能直接跟在变量或常量的后面。例如下面的代码会报错:

let a= 1 + 2

错误信息是:

error: prefix/postfix '=' is reserved

意思大概是等号直接跟在前面或后面这种用法是保留的。

下面的代码还是会报错(继续注意空格):

let a = 1+ 2

错误信息是:

error: consecutive statements on a line must be separated by ';'

这是因为Swift认为到1+这个语句就结束了,2就是下一个语句了。

只有这样写才不会报错:

let a = 1 + 2; // 编码规范推荐使用这种写法

let b = 3+4 // 这样也是OK的

Swift 字面量

所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值。比如在下面:

42 // 整型字面量

3.14159 // 浮点型字面量

"Hello,world!" // 字符串型字面量

true // 布尔型字面量

ios – 转换为Swift 3错误:“转换为当前Swift语法失败无法找到测试主机…”

ios – 转换为Swift 3错误:“转换为当前Swift语法失败无法找到测试主机…”

当我尝试在升级到 Xcode 8之前运行完全运行的项目时,我不断收到错误

“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be
configured correctly for targets which use Swift. Use the [Edit >
Convert > To Current Swift Syntax…] menu to choose a Swift version or
use the Build Settings editor to configure the build setting directly.

尝试转换为swift 3.0后,我不断得到错误:

Convert to Current Swift Syntax Failed Could not find test host for
CastleTests: TEST_HOST evaluates to: (location of my file for my project and test folders)

我已经尝试将另一个项目转换为swift 3并且它工作得非常好,但是这个项目不起作用.产品的所有位置设置与工作项目中的位置相同我很困惑为什么我不断收到此错误

解决方法

i)Select every target of Test in Project. ii)Navigate to General tab.
iii)Host application name is empty,so Update with appropriate host name .

再次构建,它将正常工作.

ios – 转换为当前Swift语法失败 – “没有这样的模块”(Swift 4,Xcode 9)

ios – 转换为当前Swift语法失败 – “没有这样的模块”(Swift 4,Xcode 9)

在 Xcode 9中,我正在尝试自动转换为 Swift 4.
它失败并显示以下消息:

Convert to Current Swift Syntax Failed
Please ensure that all selected targets build successfully with the currently configured Swift version before attempting a migration.

它抱怨缺少一个模块.但是当我进行常规构建时,没有问题.不确定这是否相关,但模块(Xcode正在抱怨的模块)已经早先转换为Swift 4(在它自己的项目中).

注意:此处不使用Cocoapods / Carthage.

注意:两个解决方案尝试(并且有效),但没有解决潜在的问题.

>一种解决方案是手动进行转换(在构建设置中将Swift版本更改为4并逐个应用Fix-It,直到不再出现构建错误).
>另一种解决方案是禁用第三方框架(注释掉所有使用它的代码),执行自动迁移,然后重新启用框架.对于更大的项目,这可能会非常困难.

解决方法

我找不到任何解决方案了.

现在我修复手动设置Swift语言版本

从3.2更改为4.0后,我手动编译并修复错误和警告.我在等待更好的解决方案!

swift – 在switch语句中使用if let语法

swift – 在switch语句中使用if let语法

在 swift中,如果变量属于某种类型,if let语法只允许我执行语句.例如
class A {...}
class B: A {...}
class C: A {...}

func foo(thing: A) {
    if let b = thing as? B {
        // do something
    }else if let c = thing as? C {
        // do something else
    }
}

是否可以通过switch语句实现这一点?

我有这么远,但变量b和c仍然是A类型,而不是转换为B和C:

func foo(thing: A) {
    switch thing {
    case let b where b is B:
        // do something
    case let c where c is C:
        // do something else
    default:
        // do something else:
    }
}
如果你只想知道它是B还是C,你可以说案例是B而案例是C.

如果你想捕获并抛弃,那么说case b让b为B,case为c.

今天的关于Swift语法“ .bar”叫什么?swift tabbar的分享已经结束,谢谢您的关注,如果想了解更多关于2、swift开发iOS——swift语法、ios – 转换为Swift 3错误:“转换为当前Swift语法失败无法找到测试主机…”、ios – 转换为当前Swift语法失败 – “没有这样的模块”(Swift 4,Xcode 9)、swift – 在switch语句中使用if let语法的相关知识,请在本站进行查询。

本文标签: