目标C代码:
- (instancetype)initWithInts:(int32_t)int1, ... {
va_list args;
va_start(args, int1);
unsigned int length = 0;
for (int32_t i = int1; i != -1; i = va_arg(args, int)) {
length ++;
}
va_end(args);
...
...
return self;
}
此代码用于计算方法参数的数目。
convenience init(ints: Int32, _ args: CVarArgType...) {
var length: UInt = 0
self.init(length: args.count)
withVaList(args, { _ in
// How to increase length' value in loop?
})
}
不如就
convenience init(args: Int...) {
return args.count
}
问题内容: 如何使用Swift在一行中分配多个变量? 问题答案: 你不知道 这是一种语言功能,可以防止赋值的标准不良副作用返回值,如Swift书中所述: 与C和Objective-C中的赋值运算符不同,Swift中的赋值运算符本身并不返回值。以下语句无效: 此功能可防止在实际需要等于运算符()时偶然使用赋值运算符()。通过使其无效,Swift可帮助您避免代码中的此类错误。 因此,这有助于防止此极其
问题内容: 如何在不创建其他变量的情况下处理此错误? 我不想创建其他变量只是为了存储x的值。有可能做我想做的事吗? 问题答案: 如其他答案所述,从Swift 3开始,将var放在不推荐使用的变量之前。尽管没有在其他答案中说明,但是可以声明参数。思考:传递一个指针。 这在递归中特别有用。 苹果的声明指南可以在这里找到。
问题内容: 我有一个 : 我也试图有一个名为: 我知道在OBJC中它可以工作,但是我没有在Swift中看到一种方法来做到这一点。有办法解决这个问题,还是我不了解Swift中明显的架构/概念更改? 提前致谢。 问题答案: 这在ObjC中是个坏主意,在Swift中是非法的。考虑以下一些情况: 什么是在这种情况下?是还是它?将类的方法视为闭包是合法且有用的。 如果我们更加棘手,该怎么办: Swift应该
问题内容: 我指的是Apple的Swift编程指南,以了解如何用Swift语言创建可变/不可变对象(数组,字典,集合,数据)。但是我不明白如何在Swift中创建一个不可变的集合。 我希望在Objective-C中看到以下Swift中的等效项 不变数组 可变数组 不变字典 可变字典 问题答案: 创建不可变数组 第一种方式: 第二种方式: 创建可变数组 将对象追加到数组 辞典 创建不可变字典 创建可变
问题内容: 为什么我经常出错? 其实我也尝试过这个: 谢谢 问题答案: Swift对于运算符周围的空白有严格的规定。除’/’是 二进制运算符 。 重要规则是: 如果运算符的两边或两边都没有空格,则将其视为二进制运算符。例如,a + b和a + b中的+运算符被视为二进制运算符。 如果运算符仅在左侧具有空格,则将其视为前缀一元运算符。例如, b中的 运算符被视为前缀一元运算符。 如果运算符仅在右侧具
主要内容:1. 变量声明,2.类型注解声明,3.命名变量,4. 打印变量变量提供了程序可以操作的命名存储。 Swift 4中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。 Swift 4支持以下基本类型的变量 - 或 - 用于整数。 更具体地说,可以使用,来定义位或位有符号整数,而使用或来定义位或位无符号整数变量。 例如,和。 - 用于表示位浮点数,它用于保存小数点较小的数字。 例如,,和。 -