问题标签 [swift2.2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 在 swift 2.2 中无法正确推断选项的类型
问题:
在 Xcode 7.3 和 swift 2.2 下运行以下代码时,编译器无法正确推断可选项的类型:
在我这边使用 Xcode 7.3 这将打印I am an Int?
但是,当我在将变量传递给函数之前用空字符串初始化变量时,开关会推断它是一个字符串?
这将I am a String?
在以前的 Xcode 版本中打印。
你得到类似的结果吗?
观察:
使用此函数签名时也会发生同样的情况:
- 漏洞 -
这个问题是 swift 2.2 中的回归: https ://bugs.swift.org/browse/SR-1024
ios - “表达式列表中的预期表达式”
我正在尝试使用一些代码来制作使用 Xcode 7.3 和 Swift 2.2 的初学者应用程序,但我一直遇到同样的问题。我以前使用过类似的代码,但这不起作用。出现的错误消息是“预期的','分隔符”,当我修复它时,同样的消息会一次又一次地出现。我还得到“表达式列表中的预期表达式”和“调用中参数'action'的参数缺失”。它们都是由同一行引起的
这是代码
swift - swift 2.2:惰性属性中的可失败初始化器
首先非常感谢您的帮助。我昨天刚刚升级了包含 swift 2.2 的 Xcode。我遇到了一些问题,但我按照 Natashatherobot 的“swift 2.2 中的新功能”主题快速解决了这些问题。但是有一个问题我无法解决。这是关于 swift 2.2 中引入的 UIFont 的可失败初始化程序。附上一段简单的代码,在 swift 2.2 中会报错。在我清理项目之前,它可能不会立即报告错误。
错误是: (name: String, size: CGFloat) -> UIFont' is not convertible to '(name: String, size: CGFloat) -> UIFont?'
我可以通过两种方式修复它:
方法1:不要把这行:
let font = UIFont(name: "somefont", size: 10) ?? UIFont.systemFontOfSize(10)
放在'lazy instantiation'闭包中。(把它放在计算属性中不会报错)
方法2:而不是使用:
改用下面的(但是我认为这不应该是正确的方法,因为它使初始化程序更具“objc”风格):
但是我仍然不明白为什么它会在惰性属性关闭中报告我错误。如果有人能给我一些解释,我将不胜感激。
swift2 - 在 iOS 9.2 和 watchOS 2.1 中使用 Swift 2.2?
现在Swift 2.2 / iOS 9.3 / watchOS 2.2
已经发布了,我可以使用设备更新应用程序Xcode 7.3
并且仍然可以在iOS 9.2
设备上工作吗?
例如,如果我开始使用#selector(someFunc)
而不是,这会在设备selector("someFunc")
上崩溃吗?iOS 9.2
ios - Swift 2.2 打破了可选项/展开可选项
Swift 2.2 几乎破坏了我所有的代码。即使是这个简单的分配给 label 的字符串也不再起作用:
错误显示“从'字符串向下转换?!' to 'String' 只解开可选项,你的意思是使用 '!!' 吗? ”
我现在要做什么改变。
编辑:
更多问题:
因此,我遇到了分段错误,错误显示如下:警告:从'String?!' 到不相关的类型 'NSArray' 总是失败
更新:
我在我的类中使用 NSDictionaries、NSArrays 似乎会导致问题。将所有文字从 Obj-C 更改为 swift 使代码正常工作。所以,我也会推荐其他开发人员更喜欢 swift 字面量。
ios - #warning:C 风格的 for 语句已弃用,将在 Swift 的未来版本中删除
我只是用 swift 2.2 下载了一个新的 Xcode (7.3)。
它有一个警告:
C 风格的 for 语句已被弃用,并将在 Swift 的未来版本中删除。
我该如何解决这个警告?
ios - 用于扩展非泛型类型的尾随 where 子句
我有以下代码:
在扩展至UIViewController
. 许多视图控制器重用此代码来注册键盘通知。然而,对于 Swift 2.2,它会产生一个警告。我喜欢新#selector
语法,但不确定在这种情况下如何实现它。
我认为正确的解决方案是制定一个协议并UIViewController
仅针对符合该协议的实例进行扩展。到目前为止我的代码:
然而,这让我得到了错误
在扩展行上。有任何想法吗?
ios - swift 2.2 新的循环语法
我必须修改我的 swift 2 应用程序的 for 循环。目前我使用这种语法
我了解到我必须使用这个:
但我必须如何改变这个for循环: