Tag: 迅捷的

如何检查文本字段是否为空或不快速

我正在处理下面的代码来检查textField1和textField2文本字段是否有任何input。 当我按下button时, IF语句没有做任何事情。 @IBOutlet var textField1 : UITextField = UITextField() @IBOutlet var textField2 : UITextField = UITextField() @IBAction func Button(sender : AnyObject) { if textField1 == "" || textField2 == "" { //then do something } }

如何创build一个圆形的物体进入和从粗物质分离的效果

基于下面的图像(我使用不同的颜色为圆和平坦的表面,所以他们可以看到,但最后的颜色将是相同的),使用Swift和Spritekit,我想创build一个圆形对象的效果进入一种厚物质(不一定是粘稠的)并与厚物质分离。 基本上,当圆形物体分离时,它会形成一个圆形,从平面上脱离。 我想使用图像animation框架,但是由于对象是具有物理体的SKSpriteNodes,所以这将使对象与animation的碰撞难以计时。 另一种方法是使用CAAnimation,但我不知道如何将它与SKSpriteNodes结合使用。 我如何使用上述任何一种方法或不同的方法创build这种分离效果? UPDATE 下图显示了圆形物体进入厚物质直至被淹没时厚物质表面的变化。

Swift中的genericstypes

在haskell中,你可以这样做: type Parser a = String -> [(a, String)] 我试图在Swift中做类似的东西。 到目前为止,我没有运气写这些代码。 typealias Parser<A> = String -> [(A, String)] typealias Parser a = String -> [(a, String)] typealias Parser = String -> [(A, String)] 那么,这是不是迅速? 如果是,还有其他的方法来实现这种行为? 更新:似乎genericstypes现在支持在swift 3 https://github.com/apple/swift/blob/master/CHANGELOG.md

Swift中的指数运算符

在Swift语言参考中,我没有看到在基本算术运算符中定义的指数运算符。 语言中是否真的没有预定义的整数或浮点乘幂运算符?

如何在Swift中创build范围?

在Objective-c中,我们使用NSRange创build范围 NSRange range; 那么如何在Swift中创build范围?

如何在Swift中创build一个可导入的模块?

我已经阅读了Swift的苹果文档,并且没有发现如何创build模块或者如何将类或者构造成员定义为私有或者公共的。 在语法中有对引用语句的引用,但我不能find它在做什么或如何使用它的信息。 有谁知道我在哪里可以find这个?

“Protocol …只能用作通用约束,因为它具有自我或相关types需求”是什么意思?

更新:为了最好的解释为什么这是检查出这个video的方式 。 我试图创build一个字典(实际上是一个HashSet )在Swift中的自定义协议上键入,但它给了我标题中的错误,我不能正面或反面。 protocol Observing: Hashable { } … var observers = HashSet<Observing>()

“致命错误:数组无法从Objective-C桥接” – 为什么你甚至在尝试Swift?

我已经声明了一个Swift协议: protocol Option { var name: String { get } } 我声明了这个协议的多个实现 – 一些类,一些枚举。 我有一个视图控制器的属性声明如下: var options: [Option] = [] 当我尝试将此属性设置为在另一个VC的prepareForSegue中实现Option协议的对象数组时,出现运行时错误: fatal error: array cannot be bridged from Objective-C 为什么这不工作? 编译器拥有它所需要的所有信息,而且我不明白Objective-C与它有什么关系 – 我的项目只包含Swift文件,而且这些数组不会进出任何框架方法使他们被桥接到NSArray 。

在Swift中使用where子句扩展数组types

我想使用Accelerate框架来扩展[Float]和[Double],但是每个都需要不同的实现。 我试过很明显的: extension Array<Float> { } 并得到这个错误: “约束扩展必须在非专用genericstypes'Array'上声明,其约束由'where'子句指定” 以这种方式扩展Swift 2中的genericstypes是否可行? 我已经得到了代码正常工作。 以下是一个使用Accelerate框架显示总和的示例。 extension _ArrayType where Generator.Element == Float { func quickSum() -> Float { var result: Float = 0 if var x = self as? [Float] { vDSP_sve(&x, 1, &result, vDSP_Length(x.count)) } return result } } extension _ArrayType where Generator.Element == Double { func quickSum() […]

如何在Swift中的types为的Dictionary中存储Class <ClassImplementingProtocol>types的值?

我想在一个types为[String:SomeClass]的字典中存储一个更专门化的types。 下面是一些示例代码,说明我的问题(也可以在https://swiftlang.ng.bluemix.net/#/repl/579756cf9966ba6275fc794a上玩): class Thing<T> {} protocol Flavor {} class Vanilla: Flavor {} var dict = [String:Thing<Flavor>]() dict["foo"] = Thing<Vanilla>() 它会ERROR at line 9, col 28: cannot assign value of type 'Thing<Vanilla>' to type 'Thing<Any>?'产生错误ERROR at line 9, col 28: cannot assign value of type 'Thing<Vanilla>' to type 'Thing<Any>?' 。 我尝试过将Thing<Vanilla>() as Thing<Flavor>但是产生这个错误cannot convert value of […]