我使用的是Xcode6Beta4.我有一个奇怪的情况,我不知道如何适当地测试选项.

如果我有一个可选的xyz,是测试的正确方式:

if (xyz) // Do something

if (xyz != nil) // Do something

The documents say to do it the first way, but I've found that sometimes, the second way is required, and doesn't generate a compiler err或, but other times, the second way generates a compiler err或.

我的具体示例是使用连接到swift的GData XML解析器:

let xml = GDataXMLDocument(
    XMLString: responseBody,
    options: 0,
    err或: &xmlErr或);

if (xmlErr或 != nil)

这里,如果我这么做的话:

if xmlErr或

它总会回到现实.然而,如果我这样做:

if (xmlErr或 != nil)

then it w或ks (as how it w或ks in Objective-C).

Gdata XML和它处理可选选项的方式有没有什么我没有注意到的?

推荐答案

在Xcode Beta 5中,他们不再允许您执行以下操作:

var xyz : NSString?

if xyz {
  // Do something using `xyz`.
}

这会产生错误:

不符合协议的布尔类型.协议'

您必须使用以下表格之一:

if xyz != nil {
   // Do something using `xyz`.
}

if let xy = xyz {
   // Do something using `xy`.
}

Ios相关问答推荐

滚动时突出显示工具栏项目

IFrame内容拒绝仅在iOS浏览器上加载-即使发布了内容-安全-策略(CSP)框架-祖先指令

为什么iOS委派在KMM中不能正常工作?

如何删除NavigationView中的默认透明标头?

从包含 5 个以上项目的自定义选项卡栏的导航视图中删除更多按钮

创建 Flutter 项目时,如何从我的系统中删除特定的开发者身份?

SwiftUI - 如何从主题感知命名 colored颜色 中获取正确的 RGB 值?

SwiftUI 图表 BarMark 将注释对齐到图表顶部

在我的 M1 上出现 Architecture arm64 问题,因此我无法运行我的旧项目

通过 Rosetta 打开模拟器 xcode 14 以修复滚动

expo EAS build (iOS) 在 Pod 安装步骤中失败 (SDK45 & 46)

FileHandle 不会在 iOS 中释放内存

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

SwiftUI 中的偏移量和按钮有问题吗?

iOS,Swift 5,AppDelegate open url / .onOpenUrl - 如何找到调用我的自定义方案的调用应用程序

通过按钮打开 AppStore

Xcode - 错误 ITMS-90635 - Bundle 包中的 Mach-O 无效 - 提交到 App Store

Select UITableViewCell 时 UIView backgroundColor 消失

在 Xcode 5 中为超级视图添加间距约束

swift 语言中的 null / nil