我刚刚在Xcode中创建了一个新的Swift项目.我想知道它正在使用哪个版本的Swift.
如何在Xcode或终端中看到我在项目中使用的Swift版本?
Swift 2引入了guard关键字,可用于确保准备好配置各种数据.我在这个网站上看到的一个例子演示了一个submitTapped函数:
func submitTapped() {
guard username.text.characters.count > 0 else {
return
}
print("All good")
}
Run Code Online (Sandbox Code Playgroud)
我想知道使用guard是否与使用if条件的旧式方式有所不同.它是否会带来好处,而使用简单的支票是无法获得的?
目前,Angular 2处于第13个测试阶段.当我查看https://code.angularjs.org/2.0.0-beta.13/时,我可以看到有两个不同版本的Angular2:
这两者有什么区别?并且看起来angular2.js没有angular2.umd.js版本,为什么会这样?
是否可以在guard函数外部使用?
以下引发了一个需要使用返回或中断的错误,但在这种情况下是不可能的.
var var1 = String?()
guard let validVar = var1 else {
print("not nil")
}
Run Code Online (Sandbox Code Playgroud) 做这样的事情是微不足道的:
class Collection {
init(json: [String: AnyObject]){
guard let id = json["id"] as? Int, name = json["name"] as? String else {
print("Oh noes, bad JSON!")
return
}
}
}
Run Code Online (Sandbox Code Playgroud)
在那种情况下,我们let用来初始化局部变量.但是,将其修改为使用类属性会导致它失败:
class Collection {
let id: Int
let name: String
init(json: [String: AnyObject]){
guard id = json["id"] as? Int, name = json["name"] as? String else {
print("Oh noes, bad JSON!")
return
}
}
}
Run Code Online (Sandbox Code Playgroud)
它抱怨let或var需要使用,但显然情况并非如此.在Swift 2中执行此操作的正确方法是什么?
为什么我需要unwrapped在最终的return语句中解包变量?不是警卫应该处理这个吗?
func test() -> String {
let fmt = NSNumberFormatter()
let myValue:Double? = 9.50
guard let unwrapped = myValue else {
return ""
}
return fmt.stringFromNumber(unwrapped)
}
Run Code Online (Sandbox Code Playgroud)
错误:可选类型'String?'的值 没有打开; 你的意思是用'!' 要么 '?'?return fmt.stringFromNumber(unwrapped)
如何在swift中使用'guard'.我已经阅读了很多关于'guard'的文章.但是我没有清楚地了解这个.请给我一个明确的想法.请给我一些关于'if'语句的示例输出.
if firstName != ""
{
if lastName != ""
{
if address != ""
{
// do great code
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在处理 swift 2.0 中的一个问题
我从 API 获取一个 json 文件,并尝试从中解开一些字符串。
有时这个 json 会给我一个带有场地街道名称的字符串,但有时不会。所以当我尝试这个时
var street = arrRes[indexPath.row]["venueLocation"]!["street"] as! String
Run Code Online (Sandbox Code Playgroud)
它总是让我的应用程序崩溃,说它为零。当我评论它时,我的应用程序运行完美,但它不显示街道。知道如何在没有任何问题的情况下解开字符串nil吗?
如果尝试过这段代码
var street = arrRes[indexPath.row]["venueLocation"]!["street"] as! String
if street == "" {
street = "n/a"
}
Run Code Online (Sandbox Code Playgroud)
但它也失败了。