相关疑难解决方法(0)

什么是Swift中的"未包装的价值"?

按照本教程,我正在学习Swift for iOS 8/OSX 10.10 ,并且多次使用术语" unwrapped value ",如本段(在Objects和Class下):

使用可选值时,您可以写吗?在诸如方法,属性和下标之类的操作之前.如果之前的值?是零,一切都在?被忽略,整个表达式的值为零.否则,可选值是解包,并且后面的一切都是?作用于未包装的价值.在这两种情况下,整个表达式的值都是可选值.

let optionalSquare: Square? = Square(sideLength: 2.5, name: "optional square") 
let sideLength = optionalSquare?.sideLength
Run Code Online (Sandbox Code Playgroud)

我没有得到它,并在没有运气的情况下在网上搜索.

这意味着什么?


编辑

根据Cezary的回答,原始代码的输出与最终解决方案(在操场上测试)之间存在细微差别:

原始代码

原始代码

Cezary的解决方案

Cezary的解决方案

在第二种情况下,超类的属性显示在输出中,而在第一种情况下有一个空对象.

在这两种情况下,结果不应该是相同的吗?

相关问答:Swift中的可选值是什么?

ios swift ios8

155
推荐指数
3
解决办法
7万
查看次数

问号'含义'是什么意思?在快速?

在Swift编程中,我发现了一些带有对象的问号.

var window: UIWindow?
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释它的使用吗?

ios swift

81
推荐指数
2
解决办法
5万
查看次数

我什么时候应该将可选值与nil进行比较?

通常,您需要编写如下代码:

if someOptional != nil {
    // do something with the unwrapped someOptional e.g.       
    someFunction(someOptional!)
}
Run Code Online (Sandbox Code Playgroud)

这似乎有点冗长,而且我听说使用!强制解包操作符可能是不安全的,最好避免使用.有没有更好的方法来处理这个?

optional ios swift swift2

43
推荐指数
1
解决办法
3万
查看次数

swift中的任何函数是否与Android中的R.java类似?

我是iOS和swift的初学者.

我曾经写过Android,我认为R.java是管理id,drawable,字符串和其他资源的好主意.所以我很惊讶iOS没有提供访问资源的好功能.

如果我想从资产中获取图像,我会打电话UIImage(named: "img_name"),但我不认为这是最好的访问方式img_name,我可能会使用错误的名称而无法获取图像.

我发现了一些像SharkSwiftGen这样的开源项目,但Shark只支持图像,SwiftGen似乎不需要自动运行命令.

你有更好的解决方案吗?谢谢!

android ios r.java-file swift

11
推荐指数
1
解决办法
1162
查看次数

数据类型后的问号(?)

这两个陈述让我感到困惑

var optionalString: String? = "Hello"
Run Code Online (Sandbox Code Playgroud)

相反,我们可以写它

var optionalString: String = "Hello"
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别?

我们也可以在没有可选值的情况下执

var str: String = nil
str = "Hello"
Run Code Online (Sandbox Code Playgroud)

请澄清.

variables swift

9
推荐指数
2
解决办法
4439
查看次数

Xcode控制台中的"Some"关键字是什么意思?

打印对象的描述会使lldb在对象的描述前面使用关键字"Some"(这里我是一个可选的字符串):

(lldb) po someString
Optional<String>
 - Some: "Hello Jupiter"
Run Code Online (Sandbox Code Playgroud)

这个关键字是什么意思; 为什么会这样?

xcode lldb swift

9
推荐指数
1
解决办法
4337
查看次数

在Swift中捕获所有错误,异常,无论它是什么

我是Swift的新手,我有一点问题.

我有一段代码,任何行都可能抛出错误.

我的问题是,我不希望逐行捕获每个错误,我想在一个语句中捕获它们.

在python中你可以做到这一点

try:
    exampleArray = [1,2,3,4]
    print(exampleArray[4])
except Exception as e:
    print(e)
    pass
Run Code Online (Sandbox Code Playgroud)

这样做是尝试从不存在的数组中打印一个值,但它被except语句捕获,我想知道Swift中是否存在这么简单的东西

为了澄清,我不是想捕捉index out of range错误,我只是想捕捉错误,无论它是什么.

是否可以在不声明我自己的错误的情况下逐行抛出它们?

swift

6
推荐指数
1
解决办法
1071
查看次数

在Swift中使用可选值

在阅读The Swift Programming Language时,我遇到了这个片段:

您可以使用iflet一起使用可能缺少的值.这些值表示为选项.可选值包含值或包含nil以指示缺少值.在值的类型后面写一个问号(?)以将值标记为可选.

// Snippet #1
var optionalString: String? = "Hello"
optionalString == nil

// Snippet #2     
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}
Run Code Online (Sandbox Code Playgroud)

Snippet#1足够清晰,但是在Snippet#2中发生了什么?有人可以分解并解释吗?它只是使用if - else块的替代方案吗?let在这种情况下,确切的作用是什么?

我确实看过这个页面,但还是有点困惑.

cocoa ios swift

3
推荐指数
1
解决办法
1417
查看次数

设置可选文本时,UIlabel文本不显示"可选"字样?

我一直在使用可选项.我已将字符串变量声明为可选项

var str: String?
Run Code Online (Sandbox Code Playgroud)

现在我在这个变量中设置了一些值str = "hello".现在,如果我打印这个可选项而不打开它,那么它打印为

可选("你好")

但是,如果我在标签上设置文本,self.label.text = str那么它只显示值

你好

请解释为什么它不会在标签上显示文字

可选("你好")

uilabel ios swift

3
推荐指数
1
解决办法
448
查看次数

Swift,将字符串转换为双重错误

我写了一个代码将字符串转换为double但是给出了错误:

无法将表达式的类型'Double'转换为'NSString'类型

我的代码是:

var first = previewLable.text
var second = label1.text

var number1: Double = (first as NSString).doubleValue
var number2: Double = (second as NSString).doubleValue
Run Code Online (Sandbox Code Playgroud)

我要做些什么来修复这个错误???

谢谢

string double nsstring swift

2
推荐指数
1
解决办法
5961
查看次数

SwiftUI中的图片全屏宽度

我在SwiftUI应用程序中向我的身体添加了一个图像,并希望该图像能够覆盖设备的整个宽度,但不能覆盖整个图像。

在中body,我返回图像对象:

var body: some View {
    Image("page-under-construction")
}
Run Code Online (Sandbox Code Playgroud)

并且图像显示出来,但是,它太大了:

我尝试设置框架:这会影响突出显示的边界,但图像不会调整大小。
结合起来,我玩了.aspectRatio(contentMode:),似乎对布局没有任何影响。

如何使图像有效地达到屏幕宽度的100%?

swift swiftui

2
推荐指数
3
解决办法
2020
查看次数

当我可以做if(var!= null)时,为什么选项有用?

题:

当我可以检查值是否为零时,为什么Swift会使用类似选项的东西?从本质上讲,我想知道这种语言功能的用途是什么,我正在学习Swift atm,从初学者的角度来看,它似乎多余/无用.

PS:我来自Javascript.


码:

做一些像我这样的事情似乎很荒谬:

if let normalImage = imageFromFaceBook {
  print(normalImage) // normalImage is a constant
} else {
  print("There is no image")
}
Run Code Online (Sandbox Code Playgroud)

当我可以做的时候:

if (imageFromFacebook != nil) {
    print(imageFromFacebook) // normalImage is a constant
} else {
    print("There is no image")
}
Run Code Online (Sandbox Code Playgroud)

像我通常在Javascript中做的那样:

if (imageFromFacebook != null) {
    print(imageFromFacebook) // normalImage is a constant
} else {
    print("There is no image")
}
Run Code Online (Sandbox Code Playgroud)

optional swift

0
推荐指数
1
解决办法
162
查看次数

标签 统计

swift ×12

ios ×6

optional ×2

android ×1

cocoa ×1

double ×1

ios8 ×1

lldb ×1

nsstring ×1

r.java-file ×1

string ×1

swift2 ×1

swiftui ×1

uilabel ×1

variables ×1

xcode ×1