这是我更新到后遇到的一个有趣的问题 Swift 2.0
错误就在if let url = URL.absoluteString
网上
func myFormatCompanyMessageText(attributedString: NSMutableAttributedString) -> NSMutableAttributedString
{
// Define text font
attributedString.addAttribute(NSFontAttributeName, value: UIFont(name: "Montserrat-Light", size: 17)!, range: NSMakeRange(0, attributedString.length))
return attributedString
}
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if let url = URL.absoluteString {
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(url)
}
}
return false
}
编译器告诉您不能使用,if let
因为它完全没有必要。您没有要打开的任何可选选项:URL
不是可选的,并且该absoluteString
属性也不是可选的。if let
仅用于解开可选项。如果要创建一个名为的新常量url
,请执行以下操作:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
let url = URL.absoluteString
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(url)
}
return false
}
但是,旁注:具有一个名为参数的参数URL
和一个名为局部常量的参数url
会造成极大的混淆。这样可能会更好:
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(URL.absoluteString)
}
return false
}
问题内容: var firstName: String = “John Appleseed” if let name = firstName { print (“Hello, (name)”) } 第二行出现字符串错误:条件绑定的初始化程序必须具有可选类型,而不是’String’ 如何决定使用可选变量还是非可选变量? 问题答案: 首先,让我们考虑一下构造的含义。当你写 你告诉斯威夫特你想 尝试展开
问题内容: 我试图从我的数据源和以下代码行中删除一行: 导致以下错误: 条件绑定的初始化程序必须具有Optional类型,而不是UITableView 这是完整的代码: 我应该如何纠正以下问题? 问题答案: / 可选绑定仅在表达式右侧的结果为可选时有效。如果右侧的结果不是可选的,则不能使用此可选绑定。此可选绑定的目的是检查变量,并且如果不是,则仅使用该变量。 在您的情况下,参数被声明为非可选类型。
问题内容: 据报道,这段代码在这里和这里都有效,但是我似乎无法使其正常工作。 IBOutlet已连接到情节提要中的对象。命名了prototypeCell,因此我可以将其使用,并将其自定义类属性设置为。 First Error(我可以解决,但上面的链接都不需要它,这使我觉得我做错了。对吗?): 第二个错误(有趣的错误): 单元类别代码: 初始化代码: 问题答案: 第一个初始化程序的正确签名是: 请注
问题内容: 为什么Kotlin对此抱怨: 编译器抱怨在Line中由处理程序再次发布。这在纯Java中确实有效: 问题答案: Kotlin认为一个属性在其初始化程序结束之前尚未初始化,因此即使在lambda中也无法在其自己的初始化程序中使用该属性。这种语义类似于其初始化程序内部局部变量使用的限制。 有几种解决方法: 使用对象表达式可以引用已声明的对象: } 这仅适用于接口作为lambda的替代品,并
我正试图编写我自己的“分数”类,它包含两个数字对象:分子和分母。但是,根据这两个参数的数据类型,我希望对象以不同的方式初始化。 例如,如果我声明我希望保持类型。然而,如果我声明我希望被转换为,值为0.42,而不是。 这样做的正确方式是什么? 这感觉非常类似于具有单个对象的元组只返回原始对象的场景。这意味着将设置为类型,而不是类型。
问题内容: 我对Swift类有疑问。我有一个UITableViewController类和UITableViewCell类的快捷文件。我的问题是UITableViewCell类和插座。此类存在错误 类别“ HomeCell”没有初始化程序 ,并且我不理解此问题。 感谢您的回复。 问题答案: 您必须使用隐式展开的可选变量,以便Swift可以在初始化阶段处理循环依赖关系(在这种情况下,UI组件的父级<