我的应用程序中存在这样的循环:
for var hue = minHue; hue <= maxHue; hue += hueIncrement
{
let randomizedHue = UIColor.clipHue(
Random.uniform(ClosedInterval(hue - dispersion, hue + dispersion))
)
colors.append(colorWithHue(randomizedHue))
}
hueIncrement
是 float ,因此我不能使用如下范围运算符:..<
。
在Swift 3中实现这种循环的最佳,最简洁的方法是什么?
您可以stride(through:, by:)
为此使用跨步功能..类似
for hue in (minHue).stride(through: maxHue, by: hueIncrement){
// ...
}
在中Swift3.0
,您可以使用stride(from:to:by:)
或stride(from:through:by:)
语法
for hue in stride(from: minHue, through: maxHue, by: hueIncrement){
//....
}
问题内容: NS和非NS类之间有什么区别?特别是vs ?是否代表围绕核心非功能性的某种包装器? 问题答案: Swift 3 为现有Foundation类类型引入了一些新的 覆盖值类型 ,例如for ,for 等。完整列表和详细信息可以在下面找到 SE-0069变异性和基础价值类型 一些原因是 提供适当的值语义, 而不是可变且不可变的变体, 更多的“ Swifty” API。 新的叠加层类型应提供相
问题内容: 为了在使用Swift时与C API集成,我需要使用sizeof函数。在C语言中,这很容易。在Swift中,我处于类型错误的迷宫中。 我有以下代码: 第二行显示错误“’NSNumber’不是’T.Type’的子类型”。为什么会这样,我该如何解决? 问题答案: 使用sizeof如下: 使用类型作为参数。 如果您想要变量的大小,可以将该字段传递给。 像这样: 或更简单地说(由user1020
问题内容: 我一直在尝试实现单例,以用作我从网络上传到我的iOS应用的照片的缓存。我在下面的代码中附加了三个变体。我试图使版本2正常工作,但是它导致了我不理解的编译器错误,并希望就我做错的事情寻求帮助。变体1进行缓存,但我不喜欢使用全局变量。变体3并没有进行实际的缓存,我相信这是因为我在赋给var ic = ....的赋值中获得了副本,对吗? 任何反馈和见解将不胜感激。 谢谢Zvi 问题答案: 标
问题内容: 我正在学习快速,并试图理解字典。我已经习惯了PHP,您可能会在其中编写以下内容… 在此示例中,将按以下顺序输出值:1、2、3 我的快速代码看起来像这样… 但是,值以意外的顺序出现。我可以做些干净的事情来保持值的创建顺序,还是不能对字典进行快速排序? 问题答案: 正如已经回答的那样,词典的要点是未排序。Swift(和Objective-C)中有三种类型的集合 数组是项目的有序列表。当项目
问题内容: 我有这个循环,在Swift 2中逐个除以一个整数。 不建议使用C样式的for循环,那么如何将其转换为Swift 3.0? 问题答案: MartinR的解决方案非常通用且有用,应该成为您工具箱的一部分。 另一种方法是重新定义您想要的内容:2的幂从7降到0。
问题内容: 要找到第一个,请使用: 我如何找到第二次出现? 问题答案: 项目清单 您可以按照以下步骤在剩余的数组切片中再次搜索元素的索引: 编辑/更新: Xcode 11•Swift 5.1或更高版本 测试: